题解 | #二叉树的下一个结点#

二叉树的下一个结点

https://www.nowcoder.com/practice/9023a0c988684a53960365b889ceaf5e

import java.util.*;
/*
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.right!=null){
            pNode=pNode.right;
            while(pNode.left!=null){
                pNode=pNode.left;
            }
            return pNode;
        }
        //若没有右子树
        //且是父亲的左孩子,则直接返回父亲节点
        if(pNode.next!=null&&pNode.next.left==pNode){
            return pNode.next;
        }
        //若没有右子树
        //且是父亲的右孩子,则一直向上找到上级是上上级的左孩子,返回上上级
        if(pNode.next!=null){
            pNode=pNode.next;
		  //要是是右孩子还得往上找
            while(pNode.next!=null&&pNode.next.right==pNode){
                 pNode=pNode.next;
            }
                return pNode.next;
        }
            return null;
        }
        
    }

全部评论

相关推荐

ALEX_BLX:虽然说聊天记录不可信,不过这个趋势确实如此但我觉得也要想到一点就是卷后端的人里真正有“料”的人又有多少,我说的这个料都不是说一定要到大佬那种级别,而是就一个正常的水平。即使是现在也有很多人是跟风转码的,2-3个月速成后端技术栈的人数不胜数,但今时不同往日没可能靠速成进大厂了。这种情况就跟考研一样,你能上考场就已经打败一半的人了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务