剑指offer-二叉树的下一个结点

Posted 月半榨菜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer-二叉树的下一个结点相关的知识,希望对你有一定的参考价值。

题目描述

给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。
 
若结点存在右孩子,则右孩子的最坐下结点为中序遍历下一个结点
若没有右孩子,则该结点为祖先的左子树最右下结点的最近的一个祖先,为下一个结点
 public TreeLinkNode GetNext(TreeLinkNode pNode)
    {//树 my
        if(null==pNode){
            return null;
        }
        TreeLinkNode cur = pNode.right;
        if(cur!=null){
            while(cur.left!=null){
                cur = cur.left;
            }
            return cur;
        }
        
        TreeLinkNode pre = pNode.next;
        cur = pNode;
        while(null!=pre){
            if(pre.right!=cur){
                return pre;
            }
            else{
                cur = pre;
                pre = pre.next;
                
            }
        }
        return null;
    }

 

以上是关于剑指offer-二叉树的下一个结点的主要内容,如果未能解决你的问题,请参考以下文章

剑指Offer——二叉树的下一个节点

剑指offer(五十七)之二叉树的下一个结点

《剑指Offer——从中序遍历中找出二叉树的下一个结点》代码

剑指offer面试题 8. 二叉树的下一个结点

剑指Offer-二叉树的下一个结点

剑指offer-二叉树的下一个结点