美文网首页
二叉树的下一个结点

二叉树的下一个结点

作者: 名字是乱打的 | 来源:发表于2022-01-28 04:00 被阅读0次

题目描述
给定一个二叉树其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的next指针。

节点结构

public class TreeLinkNode {
    int val;
    TreeLinkNode left = null;
    TreeLinkNode right = null;
    TreeLinkNode next = null;

    TreeLinkNode(int val) {
        this.val = val;
    }
}
思路:

如果当前节点存在右子树,则找到右子树中序遍历第一个节点返回
如果不存在右子树,则找到父节点,如果当前节点是父节点的左节点,则返回父节点,否则返回null

代码:
 public TreeLinkNode GetNext(TreeLinkNode pNode) {
        if (pNode==null){
            return null;
        }

        //如果当前节点存在右子树,则找到右子树中序遍历第一个节点返回
        if (pNode.right!=null){
            TreeLinkNode left=pNode.right;
            while (left.left!=null){
                left=left.left;
            }
            return left;
        }
        //如果不存在右子树
        //则找到父节点,如果当前节点是父节点的左节点,则返回父节点,否则返回null
        TreeLinkNode node=pNode;

        while (node.next!=null){
            //如果该节点是父节点的左节点
            if (node==node.next.left){
                return node.next;
            }
            node=node.next;
        }

        return null;
    }

相关文章

  • 25.二叉树的下一个结点

    按照中序排序,求二叉树的下一个结点。 分析下一个结点: (1)如果当前结点存在右结点, 那么它的下一个结点就是它的...

  • 008,二叉树的下一个节点

    二叉树的下一个结点 题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的...

  • JZ-057-二叉树的下一个结点

    二叉树的下一个结点 题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的...

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

    二叉树的下一个结点 给定一棵二叉树和其中一个结点,如何找出中序遍历顺序的下一个结点树中的结点除了有两个分别指向左右...

  • 二叉树

    链表详解 用链表概念辅助理解二叉树,链表一个结点的后区指向下一个链表结点,前区指向上一个链表结点,线性结构。二叉树...

  • 面试题8:二叉树的下一个节点python

    题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点...

  • 二叉树的下一个节点

    给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包...

  • 二叉树的下一个结点

    题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点...

  • 二叉树的下一个结点

    题目 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,...

  • 剑指offer----二叉树中的下一个节点

    给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包...

网友评论

      本文标题:二叉树的下一个结点

      本文链接:https://www.haomeiwen.com/subject/huyxkrtx.html