二叉树非递归遍历
来源:互联网 发布:star算法 opencv3 编辑:程序博客网 时间:2024/06/05 07:13
1、先序遍历
访问顺序:根节点->左孩子-> 右孩子
public void iPreOrder(TreeNode root) { TreeNode p = root; LinkedList<TreeNode> stack = new LinkedList<>(); if (p != null) { stack.push(p);// 根节点入栈 while (!stack.isEmpty()) { p = stack.pop(); // 根节点出栈 visit(p);// 访问根节点 if (p.right != null) stack.push(p.right);// 右孩子入栈 if (p.left != null) stack.push(p.left);// 左孩子入栈 } }}
2、中序遍历
访问顺序:左孩子->根节点->右孩子
public void iMidOrder(TreeNode tn) { TreeNode p = tn; LinkedList<TreeNode> stack = new LinkedList<>(); while (p != null || !stack.isEmpty()) { while (p != null) { stack.push(p); p = p.left;// 访问至最左边,直至为空 } if (!stack.isEmpty()) { p = stack.pop(); // 最左元素出栈 visit(p);// 访问当前元素 p = p.right; // 指向当前元素的右孩子 } }}
阅读全文
0 0
- 非递归遍历二叉树
- 二叉树遍历非递归
- 非递归遍历二叉树
- 二叉树非递归遍历
- 二叉树非递归遍历
- 非递归遍历二叉树
- 二叉树非递归遍历
- 非递归遍历二叉树
- 非递归遍历二叉树
- 非递归遍历二叉树
- 非递归遍历二叉树
- 非递归遍历二叉树
- 二叉树非递归遍历
- 二叉树遍历--非递归
- 二叉树非递归遍历
- 非递归遍历二叉树
- 二叉树非递归遍历
- 二叉树非递归遍历
- 高级编程三——this对象
- ROS/C++ 入门(Introduction to ROS/C++)
- 8动态建模消息
- virtual box中ubuntu ssh 登录设置
- 归并排序的Python实现
- 二叉树非递归遍历
- git常用命令的基本使用
- mkdir创建目录问题
- 闭包,使用不当,会出问题
- 【数据结构】C++实现顺序栈
- Python word2vector(含安装环境)
- 计蒜客 求数组的最长递减子序列(nlogn+路径打印)
- Invalid AABB aabb,Invalid AABB a in Unity
- 数据结构与算法之树&二叉树的定义