二叉树的下一个结点
来源:互联网 发布:js 时间轴控件 编辑:程序博客网 时间:2024/04/29 07:50
题目描述
给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。
http://www.nowcoder.com/practice/9023a0c988684a53960365b889ceaf5e?rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
二叉树的中序遍历是左-根-右的形式。首先判断给出的结点是否有右子树,如果有,则返回它右子树最左边的结点。如果没有,就找到第一个当前结点是父结点左孩子的结点。
public TreeLinkNode GetNext(TreeLinkNode pNode) { TreeLinkNode node = pNode; if (node == null) return null; if (node.right != null) { //如果有右子树,则找右子树最左边的结点 node = node.right; while (node.left != null) node = node.left; return node; } else { //没有右子树,找第一个当前节点时父节点的左孩子的结点 while (node.next != null) { if (node.next.left == node) return node.next; node = node.next; } } return null; }
0 0
- 二叉树的下一个结点
- 二叉树的下一个结点
- 二叉树的下一个结点
- 二叉树的下一个结点
- 二叉树的下一个结点
- 二叉树的下一个结点
- 二叉树的下一个结点
- 二叉树的下一个结点
- 二叉树的下一个结点
- 二叉树的下一个结点
- 二叉树的下一个结点
- 二叉树的下一个结点
- 二叉树的下一个结点
- 二叉树的下一个结点
- 二叉树的下一个结点
- 二叉树的下一个结点
- 二叉树的下一个结点
- 二叉树的下一个结点
- Java3*3拼图小游戏--powered by dustin
- bootstrap适应多种设备的总结
- LVS NAT转发设置
- 快速入门三 SSH2附带源码
- Android (自定义控件) 初次尝试:带提示框的EditText--PopEditText
- 二叉树的下一个结点
- django分页插件介绍以及安装
- LogCat message: The Google Play services resources were not found. Check your project configuration
- 【一天搞定了,哈哈~】部署应用程序到android手机,adb命令
- 借助工具解决内存问题
- 自定义居于底部的选择国家的滚动选择器
- Ubuntu14.04安装搜狗输入法
- Error 'Incorrect key file for table 'test'
- hive导出数据导本地的方法