Binary Tree Level Order Traversal II

/**
 * Definition for binary tree
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
public class Solution {
    public ArrayList<ArrayList<Integer>> levelOrderBottom(TreeNode root) {
        // Start typing your Java solution below
        // DO NOT write main() function
        ArrayList<ArrayList<Integer>> ret = new ArrayList<ArrayList<Integer>>();
        Queue<TreeNode> q = new LinkedList<TreeNode>();
        if(root == null)return ret;
        q.add(root);
        while(!q.isEmpty()){
            int size = q.size();
            ArrayList<Integer> cur = new ArrayList();
            while(size!=0){
                TreeNode now = q.remove();
                if(now.left!=null)q.add(now.left);
                if(now.right!=null)q.add(now.right);
                cur.add(now.val);
                size--;
            }
            ret.add(0,cur);
        }
        return ret;     
    }
}

發佈了83 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章