中序遍历的下一节点+++

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

/*
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 p)
	    {
	        if(p==null)
	        	return null;
	        			if(p.right!=null)
	        			{p=p.right;
	        			while(p.left!=null)
	        				p=p.left;
	        			return p;	
	        			}
	        			while(p.next!=null)
	        			{
	        				if(p.next.left==p)
	        					return p.next;
	        				p=p.next;
	        			}
	        			return null;
	    }
}

猜你喜欢

转载自blog.csdn.net/feiqipengcheng/article/details/106062663