二叉树中序遍历的下一个结点

二叉树的下一个结点

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

    //如果右节点不为空,那么就找它的右子树的最左结点
    if (pNode.right != null) {
        TreeLinkNode node = pNode.right;
        while (node.left != null)
            node = node.left;
        return node;
    } else {
        //如果右结点为空,找父节点,什么样的父节点
        //1.如果此结点为左树,直接返回父节点
        //2.如果此节点为右树,那么以它父节点为此节点再从第1步找,找不到返回null
        while (pNode.next != null) {
            TreeLinkNode parent = pNode.next;
            if (parent.left == pNode)
                return parent;
            pNode = pNode.next;
        }
    }
    return null;
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务