关闭
尊敬的极客用户,您好!
感谢您一直关注并使用极客头条,为了给您带来良好的体验效果及性能,极客头条将于2018年04月27日关闭,您可以在 我的博客 中继续使用发布文章功能并看到已经发布成功的文章。
返回 登录
47

层次遍历二叉树,并输出节点所在的行数


//层次遍历二叉树,并输出节点所在的行数
    public static void main(String[] args) {
        TwoTree root = new TwoTree(1);
        root.left = new TwoTree(2);
        root.left.left = new TwoTree(3);
        root.left.left.left = new TwoTree(4);
        root.right = new TwoTree(5);
        print(root);
    }
    public static void print(TwoTree root){
        Queue<TwoTree> queue = new LinkedList<TwoTree>();
        TwoTree last = root;
        TwoTree nlast = root;
        int num = 1;
        TwoTree point = root;
        queue.add(point);
        while(!queue.isEmpty()){
            point = queue.poll();
            System.out.println("行数:"+num+"---"+point.value);
            if(point.left!=null){
                queue.add(point.left);
                nlast = point.left;
            }
            if(point.right!=null){
                queue.add(point.right);
                nlast = point.right;
            }
            if(last == point){
                last = nlast;
                num++;
            }
        }
    }

其中:
public class TwoTree {
    TwoTree left;
    TwoTree right;
    int value;
    public TwoTree(int a){
        value = a;
        left = null;
        right = null;
    }
}
评论