二叉树的下一个结点

萝卜er 萝卜er     2022-08-07     163

关键词:

题目描述

给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。
 
思路:1.如果给定节点有右子树,那么右子树上面的最左节点就是他中序遍历的后一个节点
2.如果一个节点是一棵树的左子树,那么他的下一个就是他的父节点
3.如果一个节点是一棵树的右子树。 根据 一个节点左子树的最右边的节点是,根节点的上一个节点的规律。  那么如果节点是父节点的右孩子,那么看他的父亲,看他父亲如果是他父亲的父亲的右孩子,那继续往上看,直到发现某一个祖先节点是其父节点的左孩子的时候,那么,这个父节点就是要找的节点。画图易证。(终止条件是他的祖先节点没有父节点了)
 
上代码
/*
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==null){
            return null;
        }
        if(pNode.right!=null){
            TreeLinkNode right=pNode.right;
            while(right.left!=null){
                right=right.left;
            }
            return right;
        }
        while(pNode.next!=null){
            TreeLinkNode pp=pNode.next;
            if(pp.left==pNode){
                return pp;
            }
            pNode=pp;
        }

        return null;
    }
}

 

 
 

二叉树的下一个结点

给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。/*publicclassTreeLinkNode{intval;TreeLinkNodeleft=null;TreeLinkNoderight=null;TreeLinkNodenext=null... 查看详情

二叉树的下一个结点(代码片段)

题目给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路我们以上图为例进行讲解,上图二叉树的中序遍历是d,b,h,e,i,a,f,c,g... 查看详情

55二叉树的下一个结点

一、题目给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。二、解法1/*2publicclassTreeLinkNode{3intval;4TreeLinkNodeleft=null;5TreeLinkNoderig... 查看详情

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

面试题8.二叉树的下一个结点NowCoder题目描述给定一棵二叉树和其中的一个结点,如何找出中序遍历顺序的下一个结点?树中的结点除了有两个分别指向左右子结点的指针以外,还有一个指向父结点的指针。Java实现略 查看详情

二叉树的下一个结点(代码片段)

题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。publicclassTreeLinkNodeintvalue;TreeLinkNodeleft=null;TreeLinkNoderight=null;TreeLinkNo... 查看详情

二叉树的下一个结点(代码片段)

...语言2秒空间限制:C/C++32M,其他语言64M题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路:中序遍历:左中右,... 查看详情

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

题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路分析二叉树的下一个节点,一共有以下情况:二叉树为空,则... 查看详情

19.二叉树的下一个节点

 1.如果一个结点有右子树,那么它的下一个结点就是它的右子树的最左子结点。2.如果当前节点没有右儿子,我们可以沿着指向父结点的指针一直向上遍历,直到找到一个是它父结点的左子结点的结点。   查看详情

57二叉树的下一个结点

题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路:如果一个节点有右子树,那么他的下一个节点就是它的右子... 查看详情

二叉树的下一个结点

题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 思路:1.如果给定节点有右子树,那么右子树上面的最左节点... 查看详情

二叉树的下一个结点

题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。树见书P275分三种情况:1.该节点有右子树,下一个结点就是它右子... 查看详情

二叉树的下一个节点(代码片段)

题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 1/*2publicclassTreeLinkNode3intval;4TreeLinkNodeleft=null;5TreeLinkNoderight=null... 查看详情

剑指offer-二叉树的下一个结点(代码片段)

题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 若结点存在右孩子,则右孩子的最坐下结点为中序遍历下一个... 查看详情

59.二叉树的下一个节点(代码片段)

题目描述:??给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路分析:??二叉树的下一个节点,一共有以下情况:??1.二叉... 查看详情

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

题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 解题思路:两种情况,若果一个结点有右子树,那么其下一个... 查看详情

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

题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 思路:1)如果一个节点有右子树,那么它的下一个结点就是... 查看详情

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

/*structTreeLinkNode{intval;structTreeLinkNode*left;structTreeLinkNode*right;structTreeLinkNode*next;TreeLinkNode(intx):val(x),left(NULL),right(NULL),next(NULL){}};*/classSolution{public:TreeLinkNode* 查看详情

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

剑指offer-8二叉树的下一个节点题目:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路:右侧有节点,直接打印右侧没... 查看详情