剑指offer——二叉树的下一个节点___
来源:互联网 发布:个人开淘宝食品店 编辑:程序博客网 时间:2024/06/06 16:52
题目描述
给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。
思路:首先知道中序遍历的规则是:左根右,然后作图
结合图,我们可发现分成两大类:1、有右子树的,那么下个结点就是右子树最左边的点;(eg:D,B,E,A,C,G) 2、没有右子树的,也可以分成两类,a)是父节点左孩子(eg:N,I,L) ,那么父节点就是下一个节点 ; b)是父节点的右孩子(eg:H,J,K,M)找他的父节点的父节点的父节点...直到当前结点是其父节点的左孩子位置。如果没有eg:M,那么他就是尾节点。
/*public class TreeLinkNode { int val; TreeLinkNode left = null; TreeLinkNode right = null; TreeLinkNode next = null; TreeLinkNode(int val) { this.val = val; }}*/public class Solution { public TreeLinkNode GetNext(TreeLinkNode pNode) { if(pNode==null)return null; if (pNode.right!=null) { pNode = pNode.right;while(pNode.left!=null){pNode = pNode.left;}return pNode;} while(pNode.next!=null){ if(pNode.next.left==pNode) {//如果是父节点的左孩子return pNode.next;} pNode = pNode.next;//如果是父节点的右孩子,则一直找他的父节点的父节点,直到当前节点是其父节点的左孩子 }//while //如果没有,那么它是尾节点 return null; }}
阅读全文
0 0
- 剑指offer——二叉树的下一个节点___
- 剑指offer——二叉树的下一个节点
- 剑指offer——二叉树的下一个节点
- 剑指Offer—57—二叉树的下一个节点
- 剑指offer——查找二叉树的下一个节点
- 剑指Offer--二叉树的下一个节点
- 《剑指offer》二叉树的下一个节点
- 剑指offer-二叉树的下一个节点
- 剑指offer--二叉树的下一个节点
- 剑指offer-二叉树的下一个节点
- 【剑指offer】二叉树的下一个节点
- 剑指offer --- 二叉树的下一个节点
- 剑指offer 58 - 二叉树的下一个节点
- 剑指offer系列之五十七:二叉树的下一个节点
- 剑指offer系列之56:二叉树的下一个节点
- 剑指offer(60):二叉树的下一个节点
- 剑指Offer面试题58:二叉树的下一个节点
- 13.剑指offer-二叉树的下一个节点
- Spring bean三种创建方式
- Spring Boot中使用Swagger2构建强大的RESTful API文档
- c++拷贝构造函数详解
- Python set()函数详解
- Spring bean注解配置(1)
- 剑指offer——二叉树的下一个节点___
- Spring 注解配置(2)——@Autowired
- Spring Boot 集成Swagger
- 遗传算法小结
- codevs 1725 探险(简单二分)
- 某标签在访问前后和鼠标悬浮时变色
- 【jzoj100006】【SDOI2017】【数字表格】【数论】
- 关于PT100的高精度测温电路,使用AD623+REF3030组合(很稳定)
- web项目中各种路径的获取