树——二叉树中序遍历的下一个节点
2016-06-15 13:57
197 查看
题目描述
给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。分析二叉树的下一个节点,一共有以下情况:
1.二叉树为空,则返回空;
2.节点右孩子存在,则设置一个指针从该节点的右孩子出发,一直沿着指向左子结点的指针找到的叶子节点即为下一个节点;
3.节点不是根节点。如果该节点是其父节点的左孩子,则返回父节点;否则继续向上遍历其父节点的父节点,重复之前的判断,返回结果。代码如下:
public TreeLinkNode GetNext(TreeLinkNode node) { if(node == null) return null; if(node.right!=null) { TreeLinkNode temp=node.right; while(temp.left!=null) { temp=temp.left; } return temp; } else { if(node.next!=null&&node == node.next.left) return node.next; else { while(node.next!=null&&node == node.next.right) { node=node.next; } if(node.next!=null) return node.next; } return null; } }
相关文章推荐
- ubuntu 安装 PIL(Python图像库)
- git的使用
- Android实现点击两次返回键退出
- 程序打开文件意外终止的调试-基于errorno.h
- 编译libRTMP(RTMPdump) For iOS
- 麒麟开源堡垒主机在等保上的合规性分析
- ZigZag Conversion - Javascript
- HTMLTestRunner 错误日志显示问题
- 四.python数据类型,语句
- CMD 模块定义规范
- UML图详解(八)状态机(状态图和活动图)
- Android实现界面完全全屏
- 数据库连接池C3P0学习
- 第二次输入http://localhost:8080/solr/就报404错
- DateUtils 日期工具类
- elaticsearch安装及相关插件
- LightOJ 1184 Marriage Media 最大匹配-匈牙利算法
- 用iPhone解锁汽车 苹果新专利恐成黑客目标
- CART决策树算法总结
- 异步加载JS、CSS代码(推荐)