zoukankan      html  css  js  c++  java
  • 把二叉树打印成多行

    import java.util.ArrayList;
    import java.util.LinkedList;

    /*
    public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
    this.val = val;

    }

    }
    */
    public class Solution {
    ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {
    ArrayList<ArrayList<Integer>> m= new ArrayList<ArrayList<Integer>>();
    if(pRoot==null)
    return m;
    LinkedList<TreeNode> deque=new LinkedList<TreeNode>();
    deque.offer(pRoot);
    int nextLevel = 0;
    int toBePrinted = 1;
    ArrayList<Integer> temp=new ArrayList<Integer>();
    while(!deque.isEmpty()){

    TreeNode pNode = deque.peek();
    temp.add(pNode.val);
    if(pNode.left!=null)
    {
    deque.offer(pNode.left);
    nextLevel++;
    }
    if(pNode.right!=null)
    {
    deque.offer(pNode.right);
    nextLevel++;
    }
    deque.poll();
    toBePrinted--;
    if(toBePrinted == 0)
    {
    toBePrinted=nextLevel;
    nextLevel=0;
    m.add((ArrayList<Integer>)temp.clone());
    temp.clear();
    }
    }
    return m;
    }
    }

  • 相关阅读:
    My Tornado Particle Effect
    [zz] 海洋环境的光能传递
    一道算法题
    Alembic
    一些莫名其妙的东东
    Python Q&A
    <<Exceptional C++>> notes
    CG Rendering v.s. Browser Rendering
    Modo
    Katana
  • 原文地址:https://www.cnblogs.com/nickup/p/9809315.html
Copyright © 2011-2022 走看看