Leetcode——94.二叉樹的中序遍歷
給定一個二叉樹,返回它的中序 遍歷。
示例:
輸入: [1,null,2,3]
1
2
/
3
輸出: [1,3,2]
進階: 遞迴演算法很簡單,你可以通過迭代演算法完成嗎?
思路:就用非遞迴來寫,先一股腦把左邊一條線全部push到底(即走到最左邊),然後node最終為None了就開始pop stack了,然後因為pop出來的每一個node都是自己這棵樹的root,所以看看它有沒有右孩子,沒有那肯定繼續pop,有的話自然而然右孩子是下一個要被訪問的節點。
class Solution:
def inorderTraversal(self, root: 'TreeNode') -> 'List[int]':
if not root:
return []
stack = []
node = root
res = []
while node or stack:
while node:
stack.append(node)
node = node.left
node = stack.pop()
res.append(node.val)
node = node.right
return res
相關文章
- 94. 二叉樹的中序遍歷(迭代)二叉樹
- 【模板題】- 94. 二叉樹的中序遍歷二叉樹
- 144.二叉樹的前序遍歷145.二叉樹的後序遍歷 94.二叉樹的中序遍歷二叉樹
- LeetCode 熱題 HOT 100 Java題解——94. 二叉樹的中序遍歷LeetCodeJava二叉樹
- 程式碼隨想錄演算法訓練營day14 | leetcode 144. 二叉樹的前序遍歷、145. 二叉樹的後序遍歷、94. 二叉樹的中序遍歷演算法LeetCode二叉樹
- 力扣工作周刷題 - 94. 二叉樹的中序遍歷力扣二叉樹
- LeetCode102.二叉樹的層序遍歷LeetCode二叉樹
- LeetCode-107-二叉樹的層序遍歷 IILeetCode二叉樹
- 二叉樹的先中後序遍歷二叉樹
- 二叉樹的先,中,後序遍歷二叉樹
- 二叉樹的前中後序遍歷二叉樹
- 根據二叉樹的前序遍歷和中序遍歷輸出二叉樹;二叉樹
- 二叉樹的層序遍歷二叉樹
- LeetCode-106-從中序與後序遍歷序列構造二叉樹LeetCode二叉樹
- 二叉樹--後序遍歷二叉樹
- 二叉樹的前序、中序、後序三種遍歷二叉樹
- LeeCode-94. 二叉樹的中序遍歷二叉樹
- 二叉樹中序和後序遍歷表示式二叉樹
- 根據前序遍歷序列、中序遍歷序列,重建二叉樹二叉樹
- 二叉樹的前序,中序,後序遍歷方法總結二叉樹
- LeetCode 105. 從前序與中序遍歷序列構造二叉樹LeetCode二叉樹
- LeetCode-105-從前序與中序遍歷序列構造二叉樹LeetCode二叉樹
- 中序線索二叉樹的建立與遍歷二叉樹
- 二叉樹(BST)中序遍歷的三種方法二叉樹
- 【LeetCode-二叉樹】二叉樹前序遍歷LeetCode二叉樹
- 二叉樹的四種遍歷方法:先序,中序,後序,層序二叉樹
- Leetcode 演算法題解系列 - 二叉樹的層序遍歷LeetCode演算法二叉樹
- LeetCode 105. 從前序與中序遍歷序列構造二叉樹 | PytLeetCode二叉樹
- 從中序與後序遍歷序列構造二叉樹二叉樹
- 中序線索二叉樹的構造和遍歷二叉樹
- leetcode 103. 二叉樹的鋸齒形層序遍歷 BFS方法LeetCode二叉樹
- Leetcode——144. 二叉樹的前序遍歷LeetCode二叉樹
- python-二叉樹:前、中、後、層序遍歷Python二叉樹
- 二叉樹:構造二叉樹(通過前序和中序遍歷)、映象翻轉、層次遍歷二叉樹
- 144. 二叉樹的遍歷「前序、中序、後序」 Golang實現二叉樹Golang
- 二叉搜尋樹的後序遍歷序列
- 非遞迴先序遍歷二叉樹遞迴二叉樹
- 388,先序遍歷構造二叉樹二叉樹