找二叉树中指定节点在中序遍历中的下一个节点
2017-05-07 12:13
204 查看
class Solution {
class TreeLinkNode { int val; TreeLinkNode left = null; TreeLinkNode right = null; TreeLinkNode next = null;
TreeLinkNode(int val) { this.val = val; } } public TreeLinkNode GetNext(TreeLinkNode pNode) { if(pNode==null) return null; TreeLinkNode right = pNode.right;//右子树 TreeLinkNode result = null; //节点有右子树,则为右子树总最左边的节点 if(right!=null){ while(right.left!=null) right = right.left; result = right; }else{//没有右子树 TreeLinkNode f = pNode.next;//父节点 if(f==null);//根节点 if(f!=null){//存在父节点 TreeLinkNode fLeft = f.left; if(fLeft==pNode){//在左子树上 result= f; }else{//在右子树上 //找到根节点 TreeLinkNode root=f.next; while(root.next!=null){ f = f.next; root=f.next; } TreeLinkNode rootleft = root.left; if(f==rootleft) result = root; } } } return result; } }
相关文章推荐
- 【二叉树】找出二叉查找树中指定节点的中序遍历后续节点
- 4.6 找出二叉树中指定节点的下一个节点(中序后继),假定每个节点有父指针。
- 二叉树 给定一个节点,求中序遍历下一个节点
- 给定一个二叉树和其中的一个节点,求中序遍历这个节点的下一个节点
- 找出二叉树中指定结点的下一个结点(中序后继)可以假定每个结点都有指向父节点的连接
- Cracking coding interview (4.5)二叉树按中序遍历次序返回某节点下一个节点
- 剑指offer给定二叉树,求中序遍历的下一个 节点,前序遍历,后序遍历扩展
- 《程序员面试金典》--寻找二叉树中某个节点中序遍历的下一个节点
- 58 - 二叉树的中序遍历的下一个节点
- 二叉树的下一个节点
- 【二叉树】二分查找树,中序遍历,统计出现次数最多的节点【Add to List 501. Find Mode in Binary Search Tree】
- 求中序遍历的下一个节点
- 【剑指offer】二叉树的下一个节点
- 设计一个算法,求非空二叉树中指定的第k层(k>1)的叶子节点的个数
- 剑指offer-二叉树的下一个节点
- 二叉树系列 - 二叉搜索树 - [LeetCode] 中序遍历中利用 pre节点避免额外空间。题:Recover Binary Search Tree,Validate Binary Search Tree
- 算法导论第二版习题10.4-5.非递归有父节点中序遍历二叉树
- 找二叉树节点的下一个节点
- 求二叉树指定节点所在层次
- wustoj(二叉树根节点到指定结点的路径-非递归算法)