Binary Tree Level Order Traversal

题目地址:
https://leetcode.com/problems/binary-tree-level-order-traversal/#/description

题目:
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,null,null,15,7],
    3
   / \
  9  20
    /  \
   15   7
return its level order traversal as:
[
  [3],
  [9,20],
  [15,7]
]

解题思路:
这道题应该用bfs来解决,而实现bfs就需要用到queue。

代码:

public List<List<Integer>> levelOrder(TreeNode root) {
    List<List<Integer>> rst = new ArrayList<>();
    if(root == null){
        return rst;
    }
    Queue<TreeNode> q = new LinkedList<>();
    q.offer(root);
    while(!q.isEmpty()){
        int size = q.size();
        List<Integer> list = new ArrayList<>();
        for(int i = 0; i <= size - 1; i++){
            TreeNode node = q.poll();
            if(node.left != null){
                q.offer(node.left);
            }
            if(node.right != null){
                q.offer(node.right);
            }
            list.add(node.val);
        }
        rst.add(list);
    }
    return rst;
}







Comments

Popular Posts