LeetCode 94 中序遍歷二叉樹

2021-08-17 22:57:21 字數 623 閱讀 2319

傳送門

給定乙個二叉樹,返回其中序遍歷。

例如:

給定二叉樹 [1,null,2,3],

1\2

/3

返回 [1,3,2].

說明: 遞迴演算法很簡單,你可以通過迭代演算法完成嗎?

題中說明了要求使用迭代法

使用乙個棧來儲存二叉樹節點,根據中序遍歷的規則,我們可以推算出這樣的規律:

1. 將當前非空節點入棧

2. 如果左子節點不為空,則繼續將左子節點入棧

3. 如果左子節點為空,則丟擲棧頂節點並記錄 val 值,然後將其右子節點入棧

4. 重複 1、2、3 步驟直至棧空

ac **:

/**

* definition for a binary tree node.

* public class treenode

* }*/class solution else

root = stack.pop();

list.add(root.val);

root = root.right;}}

}}

LeetCode94 二叉樹中序遍歷

題目描述 給定乙個二叉樹,返回它的中序 遍歷。示例 輸入 1,null,2,3 1 2 3輸出 1,3,2 c 實現 遞迴實現 definition for a binary tree node.struct treenode class solution void helper treenode ...

LeetCode 94 二叉樹的中序遍歷

給定乙個二叉樹,返回它的中序 遍歷。示例 輸入 1,null,2,3 1 2 3輸出 1,3,2 高階 遞迴演算法很簡單,你可以通過迭代演算法完成嗎?遞迴解法,先從根節點的左孩子中序遍歷,再訪問根節點,最後從根節點的右孩子中序遍歷。遞迴基是當節點為空時,返回。definition for a bin...

LeetCode(94) 二叉樹的中序遍歷

提交 class solution return arr 這題是用的c 因為它要用乙個陣列來儲存遍歷的數。用c太麻煩了。提交 class solution if s.empty true return arr 參考 演算法思想 根據中序遍歷的順序,對於任一結點,優先訪問其左孩子,而左孩子結點又可以看...