Day22 Task94 二叉樹的中序遍歷

2021-10-04 06:06:44 字數 1208 閱讀 2053

題目描述

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...