[LeetCode] Binary Tree Level Order Traversal

来源:互联网 发布:https的端口号是多少 编辑:程序博客网 时间:2024/05/29 10:08
Total Accepted: 12041 Total Submissions: 39526

Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).

For example:
Given binary tree {3,9,20,#,#,15,7},

    3   / \  9  20    /  \   15   7

return its level order traversal as:

[  [3],  [9,20],  [15,7]]

confused what "{1,#,2,3}" means? > read more on how binary tree is serialized on OJ.

public class Solution {    public ArrayList<ArrayList<Integer>> levelOrder(TreeNode root) {        ArrayList<ArrayList<Integer>>   list = new ArrayList<ArrayList<Integer>>();        preTraverse(root, list, 1);                return list;    }        public void preTraverse(TreeNode root, ArrayList<ArrayList<Integer>> list,                                 int level) {        if (root == null) return;                if (list.size() < level) list.add(new ArrayList<Integer>());        list.get(level - 1).add(root.val);                preTraverse(root.left, list, level + 1);        preTraverse(root.right, list, level + 1);    }}

public class Solution {    public ArrayList<ArrayList<Integer>> levelOrder(TreeNode root) {        ArrayList<ArrayList<Integer>>   list = new ArrayList<ArrayList<Integer>>();        Queue<TreeNode>                 queue = new LinkedList<TreeNode>();        ArrayList<Integer>              levelList = new ArrayList<Integer>();        if (root == null) return list;                queue.add(root);        queue.add(null);        while (!queue.isEmpty() && queue.peek() != null) {            TreeNode top = queue.remove();            levelList.add(top.val);                        if (top.left    != null) queue.add(top.left);            if (top.right   != null) queue.add(top.right);                        if (queue.peek() == null) {                queue.remove();                queue.add(null);                list.add(new ArrayList<Integer>(levelList));                levelList.clear();            }        }        return list;    }}
0 0
原创粉丝点击