二叉树的下一个节点

来源:互联网 发布:mac免费office软件 编辑:程序博客网 时间:2024/05/19 00:51

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

/*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;        }        TreeLinkNode pNext=null;        if(pNode.right!=null){            TreeLinkNode pRight=pNode.right;            while(pRight.left!=null){                pRight=pRight.left;            }            pNext=pRight;        }else if(pNode.next!=null){            TreeLinkNode pCur=pNode;            TreeLinkNode parent=pNode.next;            while(parent!=null&&pCur!=parent.left){                pCur=parent;                parent=pCur.next;            }            pNext=parent;        }        return pNext;    }}


原创粉丝点击