树的中序遍历
来源:互联网 发布:手机淘宝搜图片找产品 编辑:程序博客网 时间:2024/06/06 17:08
public static void getValueTWithLoop(TreeNode node, List<int> outArr)
{
Stack<TreeNode> stack = new Stack<TreeNode>();
TreeNode p = node;//定义临时节点p
while (p != null || stack.Count != 0)
{
if (p.left != null)//如果左子树不为空
{
stack.Push(p);//将传入stack
p = p.left;//p的左子树赋值给p,p变成左子树
}
else//左子树为空
{
outArr.Add(p.value);//传入p节点值给list
if (p.right != null)
{
p = p.right;
}
else
{
if (stack.Count == 0)//如果栈已经被取空
{
p = null;//将p置为空
}
while (p != null && stack.Count > 0)
{
p = stack.Pop();
outArr.Add(p.value);//传入p节点值给list
if (p.right != null)//如果右子树不为空
{
p = p.right;//把右子树的值给p
break;//跳出循环
}
else
p = null;//p=null
}
}
}
}
}public static void getValueT(TreeNode node, List<int> outArr)//中序遍历
{
if (node == null)
{
return;
}
if (node.left != null)
{
getValueT(node.left, outArr);
}
outArr.Add(node.value);
if (node.right != null)
{
getValueT(node.right, outArr);
} 阅读全文
0 0
- 树的中序遍历
- 树的中序遍历
- 树的中序遍历
- 树的前序遍历,中序遍历,后序遍历,层次(广度)遍历
- 二叉树的先序遍历,后序遍历,中序遍历,层次遍历
- 二叉树的遍历(1)--先序遍历,中序遍历,后序遍历
- 二叉树的遍历(前序遍历、中序遍历、后序遍历)
- 二叉树的遍历 前序遍历 中序遍历 后序遍历
- 树的遍历—先序遍历、中序遍历、后序遍历
- 二叉树的遍历代码(先序遍历,中序遍历,后序遍历)
- 二叉树的遍历:前序遍历、中序遍历和后序遍历
- c++ 二叉树的构建 前序遍历 中序遍历 后续遍历 层次遍历
- 树的遍历 有后序遍历和中序遍历建立二叉树,并输出层次遍历
- 二叉树的建立及遍历(先序遍历、中序遍历、后续遍历、层次遍历)
- 二叉树的遍历(2):中序遍历
- 树的非递归遍历(中序遍历)
- [转载]树的先序遍历,中序遍历,后序遍历的非递归写法
- 树的前序遍历、中序遍历与后序遍历的互相求解
- h2db数据库初使用
- 如何彻底卸载MySQL
- JAVA导出报表 ExportExcel 2
- web.xml
- 【CSS】最全的CSS浏览器兼容问题
- 树的中序遍历
- 软件工程(C编码实践篇)学习总结
- C/C++中可变参数的详细介绍(va_list,va_start,va_arg,va_end)
- 安卓系统架构以及虚拟机
- Unity5网络模块UNet介绍
- CSS3随机多背景随机圆角等效果
- 常用linux高级命令
- DG
- 递增序列排列