/** * 题目: 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。 注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 */ public class P65_GetBinaryTreeNodeNextNode { public TreeLinkNode GetNext(TreeLinkNode pNode) { //有右子树的情况 if (pNode.right != null) { pNode=pNode.right; while (pNode.left != null) { pNode = pNode.left; } return pNode; } //没有右子树的情况 while (pNode.next != null) { //当前结点是父节点的左子树 if (pNode.next.left == pNode) { return pNode.next; } if (pNode.next.right == pNode) { pNode = pNode.next; } } //遇到根节点 依旧没找到 return null; } }
剑指offer:二叉树的下一个结点(java)
最新推荐文章于 2020-07-05 13:29:13 发布