java二叉树非递归之中序遍历
来源:互联网 发布:smartgit linux 破解 编辑:程序博客网 时间:2024/05/20 18:45
思路:使用辅助栈改写递归程序,中序遍历没有前序遍历好写,其中之一就在于入栈出栈的顺序和限制规则。我们采用「左根右」的访问顺序可知主要由如下四步构成。
步骤:
1.首先需要一直对左子树迭代并将非空节点入栈
2.节点指针为空后不再入栈
3.当前节点为空时进行出栈操作,并访问栈顶节点
4.将当前指针p用其右子节点替代
步骤2,3,4对应「左根右」的遍历结构,只是此时的步骤2取的左值为空。
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public List<Integer> inorderTraversal(TreeNode root) { List<Integer> result = new ArrayList<Integer>(); Stack<TreeNode> s = new Stack<TreeNode>(); while (root != null || !s.empty()) { if (root != null) { s.push(root); root = root.left; } else { root = s.pop(); result.add(root.val); root = root.right; } } return result; }}
0 0
- java二叉树非递归之中序遍历
- java二叉树非递归之中序遍历
- 二叉树非递归遍历之中序遍历
- 二叉树之中序遍历(递归和非递归两种遍历)
- JAVA递归、非递归遍历二叉树
- java递归,非递归遍历二叉树
- JAVA递归、非递归遍历二叉树
- java建立二叉树,递归/非递归先序遍历,递归/非递归中序遍历,层次遍历
- 二叉树之中序遍历
- 非递归遍历二叉树--java实现
- java二叉树的非递归遍历
- 二叉树非递归遍历Java实现
- java 二叉树的递归遍历和非递归遍历
- java二叉树非递归之前序遍历
- java二叉树非递归之前序遍历
- 数据结构二叉树遍历之中序遍历
- 非递归先序遍历二叉树
- 后序遍历二叉树非递归
- Windows如何用PL/SQL Developer远程连接Oracle数据库
- 两个连续独立随机变量的商的概率密度函数
- Java实现排序算法之堆排序
- centos 安装Sublime
- leetcode intToRoman
- java二叉树非递归之中序遍历
- vs2008 mfc工程界面显示win98风格问题
- SSL常见加密算法
- 网络编程系列之九 getopt()函数
- C++怎么判断一个类存在指定的函数名的函数
- 各种加解密算法比较
- Qt中如何写一个model
- akoj-1291-决战21点(C#)
- 【算法笔记】最短路总结