二叉树的下一个结点

二叉树的下一个结点

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

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

    TreeLinkNode(int val) {
        this.val = val;
    }
}
*/
import java.util.ArrayList;
public class Solution {
    public TreeLinkNode GetNext(TreeLinkNode pNode)
    {
        ArrayList<TreeLinkNode> arr=new ArrayList<TreeLinkNode>();
        //寻找二叉树的根节点
        TreeLinkNode cur=pNode;
        while(cur.next!=null){
            cur=cur.next;
        }
        //中序遍历当前二叉树
        inorderTraversal(cur,arr);
        //寻找下一个节点
        for(int i=0;i<arr.size();i++){
            if(arr.get(i)==pNode){
                return i==arr.size()-1?null:arr.get(i+1);
            }
        }
        return null;
    }


    //递归中序遍历
    public static void inorderTraversal(TreeLinkNode root,ArrayList<TreeLinkNode> list){
        if(root!=null){
            inorderTraversal(root.left,list);
            list.add(root);
            inorderTraversal(root.right,list);
        }
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-21 13:38
8月实习会变多吗现在还没找到实习该怎么办...回复的hr好少
码农索隆:3-4月就要开始找,基本上6月份就发offer,7月初已经开始暑期实习了。
点赞 评论 收藏
分享
能干的三文鱼刷了10...:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-24 13:35
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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