力扣工作周刷題 - 94. 二叉樹的中序遍歷
2020.10.18
原題:點選此處
經典二叉樹問題
時間複雜度O(n)
空間複雜度O(n)
法1:遞迴。(dfs)
class Solution {
List<Integer> result = new ArrayList<>();
public List<Integer> inorderTraversal(TreeNode root) {
dfs(root);
return result;
}
public void dfs(TreeNode root){
if(root == null){
return;
}
dfs(root.left);
result.add(root.val);
dfs(root.right);
return;
}
}
法2:迭代(人為用棧進行記錄)
可能需要多寫幾遍,特別是兩個限制條件很容易錯。
class Solution {
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> result = new ArrayList<>();
Stack<TreeNode> stack = new Stack<>();
//兩個限制條件
while(root != null || !stack.isEmpty() ){
while(root != null){
stack.add(root);
root = root.left;
}
root = stack.pop();
result.add(root.val);
root = root.right;
}
return result;
}
}
相關文章
- 【模板題】- 94. 二叉樹的中序遍歷二叉樹
- 94. 二叉樹的中序遍歷(迭代)二叉樹
- Leetcode——94.二叉樹的中序遍歷LeetCode二叉樹
- 力扣#94 樹的中序遍歷力扣
- 144.二叉樹的前序遍歷145.二叉樹的後序遍歷 94.二叉樹的中序遍歷二叉樹
- LeetCode 熱題 HOT 100 Java題解——94. 二叉樹的中序遍歷LeetCodeJava二叉樹
- 刷題筆記:樹的前序、中序、後序遍歷筆記
- 程式碼隨想錄演算法訓練營day14 | leetcode 144. 二叉樹的前序遍歷、145. 二叉樹的後序遍歷、94. 二叉樹的中序遍歷演算法LeetCode二叉樹
- 刷題系列 - 中序和後序遍歷佇列,構造對應二叉樹;佇列二叉樹
- 刷題系列 - Python用非遞迴實現二叉樹中序遍歷Python遞迴二叉樹
- 二叉樹的先中後序遍歷二叉樹
- 二叉樹的先,中,後序遍歷二叉樹
- 二叉樹的前中後序遍歷二叉樹
- 根據二叉樹的前序遍歷和中序遍歷輸出二叉樹;二叉樹
- 二叉樹的層序遍歷二叉樹
- 二叉樹--後序遍歷二叉樹
- 二叉樹的前序、中序、後序三種遍歷二叉樹
- LeeCode-94. 二叉樹的中序遍歷二叉樹
- 二叉樹中序和後序遍歷表示式二叉樹
- 【模板題】- 145. 二叉樹的後序遍歷二叉樹
- 根據前序遍歷序列、中序遍歷序列,重建二叉樹二叉樹
- 二叉樹的前序,中序,後序遍歷方法總結二叉樹
- 二叉樹(BST)中序遍歷的三種方法二叉樹
- 中序線索二叉樹的建立與遍歷二叉樹
- 二叉樹的四種遍歷方法:先序,中序,後序,層序二叉樹
- 力扣刷題:100. 相同的樹力扣
- 從中序與後序遍歷序列構造二叉樹二叉樹
- 中序線索二叉樹的構造和遍歷二叉樹
- python-二叉樹:前、中、後、層序遍歷Python二叉樹
- 二叉樹:構造二叉樹(通過前序和中序遍歷)、映象翻轉、層次遍歷二叉樹
- 144. 二叉樹的遍歷「前序、中序、後序」 Golang實現二叉樹Golang
- LeetCode102.二叉樹的層序遍歷LeetCode二叉樹
- 二叉搜尋樹的後序遍歷序列
- 刷題系列 - 給出前序和後序遍歷佇列,構造對應二叉樹佇列二叉樹
- 388,先序遍歷構造二叉樹二叉樹
- 非遞迴先序遍歷二叉樹遞迴二叉樹
- 演算法 -- 實現二叉樹先序,中序和後序遍歷演算法二叉樹
- 刷題系列 - Python實現二叉樹按層級遍歷Python二叉樹