剑指offer_二叉树---二叉树的下一节点
来源:互联网 发布:软件项目外包网站 编辑:程序博客网 时间:2024/06/06 02:47
题目描述
给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。
解题思路
1,因为是中序遍历,顺序为左—中—-右
2,因为考虑下一个节点,所以考察范围可以缩小到中和右
3,如果当前节点有右子树,那么下一个节点就是右子树的最左节点
4,如果当前节点没有右子树,且是父节点的左子节点,则下一个节点就是自己的父节点
5,如果当前节点没有右子树,且是父节点的右子节点,则向上找到第一个是其父节点左子节点的节点,下一个节点就是该父节点
代码
/** * */package offerTest;/** * <p> * Title:Next * </p> * <p> * Description: * </p> * * @author 田茂林 * @data 2017年8月21日 上午10:34:53 */class TreeLinkNode { int val; TreeLinkNode left = null; TreeLinkNode right = null; TreeLinkNode next = null; TreeLinkNode(int val) { this.val = val; }}public class Next { public TreeLinkNode GetNext(TreeLinkNode pNode) { if (pNode == null) { return null; } // 如果当前节点有右子树 if (pNode.right != null) { TreeLinkNode p = pNode.right; while (p.left != null) { p = p.left; } return p; } else { // 如果当前节点没有右子树,且是父节点的左子节点 if (pNode.next != null) { TreeLinkNode pcur = pNode; TreeLinkNode parent = pcur.next; if (parent != null && pcur == parent.left) { 如果当前节点没有右子树,且是父节点的左子节点,则下一个节点就是自己的父节点 return parent; } while (parent != null && pcur == parent.right) {如果当前节点没有右子树,且是父节点的右子节点,则向上找到第一个是其父节点左子节点的节点,下一个节点就是该父节点 pcur = parent; parent = pcur.next; } return parent; } } return null; }}
阅读全文
0 0
- 剑指offer_二叉树---二叉树的下一节点
- 二叉树-求二叉树当前节点的三序访问的下一节点
- 剑指offer_二叉树的下一个节点
- 剑指offer_重建二叉树
- 剑指offer_对称二叉树
- 剑指offer_二叉树---重建二叉树
- 剑指offer_二叉树---平衡二叉树
- 剑指offer_二叉树---二叉树的镜像
- 剑指offer_二叉树---二叉树的深度
- 剑指offer_二叉树---对称的二叉树
- 面试OR笔试3——二叉树的下一节点
- java实现 二叉树中序遍历的下一节点
- Populating Next Right Pointers in Each Node 找出每个节点的下一节点(重重)二叉树
- 剑指offer_二叉树---树的子结构
- 剑指offer_二叉搜索树的第k个节点
- 剑指offer_二叉树---从上往下打印二叉树
- 剑指offer_二叉树---把二叉树打印成多行
- 剑指offer_二叉树---之字形打印二叉树
- Swift错误处理
- 猴子教你如何准备一份数据分析师简历的清单
- git pull报错:Auto Merge Failed; Fix Conflicts and Then Commit the Result.
- 关于select和insert,将一个表中的部分数据复制到另一个表中
- 在virtualenv内, 使用pip安装TensorFlow成功后,没有model目录
- 剑指offer_二叉树---二叉树的下一节点
- ssh-环境基本配置
- Intellij Idea 社区版开发java web项目
- 获取JAVA[WEB]项目相关路径的几种方法
- cocos creator构建的时候设置初始场景
- 轻松学JVM——基本原理
- 学生信息系统学习心得三、学生1.5系统用户管理模块的创建
- HDU 4675-GCD of Sequence(莫比乌斯反演+组合数+逆元)
- 校园招聘[源码+项目展示]