使用迭代的方式进行二叉树的中序遍历
程序员文章站
2022-06-17 19:53:54
...
一、题目
二、代码
引入栈的思想 ,沿根节点左孩子节点入栈,左边走不下去了,就打印节点,并转向右边,然后右边继续这个过程
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> result = new ArrayList<>();
Stack<TreeNode> stack = new Stack<>();
while(!stack.isEmpty() || root!=null){
if(root != null){
stack.push(root);
root = root.left;
}else{
TreeNode temp = stack.pop();
result.add(temp.val);
root = temp.right;
}
}
return result;
}
}
推荐阅读
-
Python利用前序和中序遍历结果重建二叉树的方法
-
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
-
[PHP] 算法-根据前序和中序遍历结果重建二叉树的PHP实现
-
【转载】C#中List集合使用Reverse方法对集合中的元素进行倒序反转
-
【算法】二叉树的前序、中序、后序、层序遍历和还原。
-
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
-
JavaScript中利用各种循环进行遍历的方式总结
-
tree traversal (树的遍历) - 中序遍历 (inorder traversal) - 二叉树的中序遍历
-
中序遍历二叉树-----迭代方式
-
二叉树的先序遍历、中序遍历、后序遍历