Leetcode Binary Tree Level Order Traversal 二叉树分层遍历

来源:互联网 发布:af淘宝旗舰店 编辑:程序博客网 时间:2024/05/17 21:47


题目:


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]]

分析:


在遍历的过程中,需要用到队列来存储每一层的节点。 


Java代码实现:


/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    public List<List<Integer>> levelOrder(TreeNode root) {        List<List<Integer>> result = new ArrayList<List<Integer>>();        if(root==null)            return result;                    Queue<TreeNode> q = new LinkedList<TreeNode>();        q.offer(root);                while(!q.isEmpty())        {            int size = q.size();            ArrayList<Integer> temp = new ArrayList<Integer>();            for(int i=0;i<size;i++)            {                TreeNode node = q.poll();                temp.add(node.val);                if(node.left!=null)                    q.offer(node.left);                if(node.right!=null)                    q.offer(node.right);            }            result.add(temp);        }        return result;    }}


0 0
原创粉丝点击