二叉树的下一个结点

二叉树的下一个结点

http://www.nowcoder.com/questionTerminal/9023a0c988684a53960365b889ceaf5e

思路:分为两种大的情况:
如果该结点有右子树就循环查找左子树最左节点,如果该结点没有右子树就循环查找 它是它父亲节点的左孩子的节点, 如果遍历到根节点还没有找到,则返回null没有下一个节点了

public class Solution {
     public TreeLinkNode GetNext(TreeLinkNode pNode)
    {

        if(pNode.right!=null){
            TreeLinkNode cur = pNode.right;
            while(cur.left!=null){
                cur = cur.left;
            }
            return cur;

        }
        while(pNode.next!=null){
            if(pNode.next.left==pNode){
                return pNode.next;
            }else{
                pNode= pNode.next;
            }
        }
        return null;
    }
}
全部评论

相关推荐

点赞 评论 收藏
分享
ResourceUt...:楼主有自己的垃圾箱,公司也有自己的人才库
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务