《剑指offer》二叉树的下一个节点
来源:互联网 发布:在淘宝上买衣服还赚吗 编辑:程序博客网 时间:2024/06/11 23:55
题目:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。
解析:主要分两大类。一类:该节点有右子树,则找到右子树的最左边的节点返回;二类是该孩子没有右子树,又可以分为两类。1.该节点就是左孩子了,直接找到它的父节点;2.不是左孩子,继续向上遍历其父节点的父节点,重复之前的判断,返回结果
/*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; } return null; }}
阅读全文
0 0
- 剑指Offer--二叉树的下一个节点
- 《剑指offer》二叉树的下一个节点
- 剑指offer-二叉树的下一个节点
- 剑指offer--二叉树的下一个节点
- 剑指offer-二叉树的下一个节点
- 【剑指offer】二叉树的下一个节点
- 剑指offer --- 二叉树的下一个节点
- 剑指offer 58 - 二叉树的下一个节点
- 剑指offer系列之五十七:二叉树的下一个节点
- 剑指offer系列之56:二叉树的下一个节点
- 剑指offer(60):二叉树的下一个节点
- 剑指offer——二叉树的下一个节点
- 剑指Offer面试题58:二叉树的下一个节点
- 13.剑指offer-二叉树的下一个节点
- 剑指offer 第八题 二叉树的下一个节点
- 剑指offer——二叉树的下一个节点___
- 【剑指offer】面试题 8:二叉树的下一个节点
- 【剑指offer】面试题8:二叉树的下一个节点
- sql语句练习题
- 线段树:HDU2795-Billboard(建树方式比较新奇)
- 处理hibernate懒加载出现的no session
- synchronized关键字
- 开门人和关门人 HDU
- 《剑指offer》二叉树的下一个节点
- 木块问题 (using std::vector) UVA
- 时间返回格式
- Servlet--获取Session对象
- Spring Boot 学习
- 链表翻转。给出一个链表和一个数k,比如链表1→2→3→4→5→6,k=2,翻转后2→1→4→3→6→5。
- Linux Bash基本功能
- 设计模式之简单工厂模式
- 配置HAProxy实现Web负载均衡