题解 | #二叉树的下一个结点#

二叉树的下一个结点

http://www.nowcoder.com/practice/9023a0c988684a53960365b889ceaf5e

/*
public class TreeLinkNode {
    int val;
    TreeLinkNode left = null;
    TreeLinkNode right = null;
    TreeLinkNode next = null;

    TreeLinkNode(int val) {
        this.val = val;
    }
}
*/
import java.util.LinkedList;
public class Solution {
    
    LinkedList<TreeLinkNode> ll = new LinkedList<TreeLinkNode>();
    public TreeLinkNode GetNext(TreeLinkNode pNode) {
        if(pNode == null) return null;
        TreeLinkNode head = null;
        TreeLinkNode fatherNode = findfatherNode(pNode);
        in_order(fatherNode);
        for(int i = 0;i<ll.size();i++){
            if(ll.get(i) == pNode){
                if(i+1 < ll.size()){
                    head = ll.get(i+1);
                }
            }
        }
        return head;
    }
    TreeLinkNode in_order(TreeLinkNode root){
        if(root == null) return null;
        in_order(root.left);
        ll.offer(root);
        in_order(root.right);
        return root;
    }
    TreeLinkNode findfatherNode(TreeLinkNode father){
        if(father == null) return father;
        while(father.next != null){
            father = father.next;
        }
        return father;
    }
}
全部评论

相关推荐

头顶尖尖的程序员:我是26届的不太懂,25届不应该是找的正式工作吗?为什么还在找实习?大四还实习的话是为了能转正的的岗位吗
点赞 评论 收藏
分享
野猪不是猪🐗:我assume that你must技术aspect是solid的,temperament也挺good的,however面试不太serious,generally会feel style上不够sharp
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务