94. 二叉樹的中序遍歷(迭代)
/**
* 94. 二叉樹的中序遍歷
* @author wsq
* @date 2020/10/04
給定一個二叉樹,返回它的中序 遍歷。
示例:
輸入: [1,null,2,3]
1
\
2
/
3
輸出: [1,3,2]
連結:https://leetcode-cn.com/problems/binary-tree-inorder-traversal
*/
package com.wsq.tree;
import java.util.ArrayList;
import java.util.Deque;
import java.util.LinkedList;
import java.util.List;
public class InorderTraversal {
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> ans = new ArrayList();
Deque<TreeNode> stack = new LinkedList();
TreeNode pre = null;
TreeNode curr = root;
while(curr != null || !stack.isEmpty()){
while(curr != null){
stack.push(curr);
curr = curr.left;
}
curr = stack.pop();
ans.add(curr.val);
curr = curr.right;
// pre = curr;
// if(curr.right != null && curr.right != pre){
// curr = curr.right;
// }else{
// curr = null;
// }
}
return ans;
}
}
相關文章
- Leetcode——94.二叉樹的中序遍歷LeetCode二叉樹
- 【模板題】- 94. 二叉樹的中序遍歷二叉樹
- 144.二叉樹的前序遍歷145.二叉樹的後序遍歷 94.二叉樹的中序遍歷二叉樹
- 力扣工作周刷題 - 94. 二叉樹的中序遍歷力扣二叉樹
- LeetCode 熱題 HOT 100 Java題解——94. 二叉樹的中序遍歷LeetCodeJava二叉樹
- 程式碼隨想錄演算法訓練營day14 | leetcode 144. 二叉樹的前序遍歷、145. 二叉樹的後序遍歷、94. 二叉樹的中序遍歷演算法LeetCode二叉樹
- 遞迴和迭代實現二叉樹先序、中序、後序和層序遍歷遞迴二叉樹
- 二叉樹的先中後序遍歷二叉樹
- 二叉樹的先,中,後序遍歷二叉樹
- 二叉樹的前中後序遍歷二叉樹
- 根據二叉樹的前序遍歷和中序遍歷輸出二叉樹;二叉樹
- 二叉樹迭代器(中序遞迴、前序和後序遍歷)演算法二叉樹遞迴演算法
- 二叉樹的層序遍歷二叉樹
- Java中用遞迴和迭代實現二叉樹的中序( InOrder )遍歷Java遞迴二叉樹
- 二叉樹的遍歷 (迭代法)二叉樹
- 二叉樹--後序遍歷二叉樹
- 二叉樹的前序、中序、後序三種遍歷二叉樹
- LeeCode-94. 二叉樹的中序遍歷二叉樹
- 二叉樹中序和後序遍歷表示式二叉樹
- 【根據前序和中序遍歷構造二叉樹】棧+迭代 || 遞迴二叉樹遞迴
- 根據前序遍歷序列、中序遍歷序列,重建二叉樹二叉樹
- 二叉樹的前序,中序,後序遍歷方法總結二叉樹
- 二叉樹(BST)中序遍歷的三種方法二叉樹
- 中序線索二叉樹的建立與遍歷二叉樹
- [資料結構]二叉樹的前中後序遍歷(遞迴+迭代實現)資料結構二叉樹遞迴
- 二叉樹的四種遍歷方法:先序,中序,後序,層序二叉樹
- 遍歷二叉樹的迭代和遞迴方法二叉樹遞迴
- 從中序與後序遍歷序列構造二叉樹二叉樹
- 中序線索二叉樹的構造和遍歷二叉樹
- python-二叉樹:前、中、後、層序遍歷Python二叉樹
- 二叉樹:構造二叉樹(通過前序和中序遍歷)、映象翻轉、層次遍歷二叉樹
- 144. 二叉樹的遍歷「前序、中序、後序」 Golang實現二叉樹Golang
- LeetCode102.二叉樹的層序遍歷LeetCode二叉樹
- 二叉搜尋樹的後序遍歷序列
- 388,先序遍歷構造二叉樹二叉樹
- 非遞迴先序遍歷二叉樹遞迴二叉樹
- 演算法 -- 實現二叉樹先序,中序和後序遍歷演算法二叉樹
- 【演算法】二叉樹、N叉樹先序、中序、後序、BFS、DFS遍歷的遞迴和迭代實現記錄(Java版)演算法二叉樹遞迴Java