題目描述
94.二叉樹的中序遍歷
給定乙個二叉樹,返回它的中序 遍歷。示例
輸入:[1
,null,2,
3]1 \
2/3輸出:[1,
3,2]
高階遞迴演算法很簡單,你可以通過迭代演算法完成嗎?解題思路
1.遞迴法
時間複雜度:o(n)
**如下
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
else
return s;}}
;
執行結果
2.迭代法
時間複雜度:o(n)
**如下
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
treenode* p = root;
while
(!s.
empty()
|| p !=
null
) p=s.
top(
); s.
pop();
ans.
push_back
(p->val)
; p=p-
>right;
}return ans;}}
;
執行結果
9 4 二叉查詢樹
唯一的坑在於 輸入中可能有重複元素,但是輸出的二叉樹遍歷序列中重複元素不用輸出。題目中沒說。中序遍歷 前序遍歷 後序遍歷才能唯一的確定一棵二叉樹 對 二叉排序樹 而言,相同元素的二叉排序樹中序遍歷一定相同,而不同元素二叉排序樹使用前序遍歷就可以發現不相同,所以只需要前序遍歷兩個二叉樹,比較一下就可以...
94 二叉樹的中序遍歷
給定乙個二叉樹,返回它的中序 遍歷。示例 輸入 1,null,2,3 1 2 3輸出 1,3,2 這道題在王道408中有講到,但是記憶不是特別清晰了於是再寫了一次 首先當然是最簡單的遞迴寫法 class solution public listhelp treenode root,list list...
94 二叉樹的中序遍歷
94.二叉樹的中序遍歷 給定乙個二叉樹,返回它的中序 遍歷。示例 輸入 1,null,2,3 1 2 3輸出 1,3,2 高階 遞迴演算法很簡單,你可以通過迭代演算法完成嗎?definition for a binary tree node.struct treenode class solutio...