LeetCode——Binary Tree Level Order Traversal

来源:互联网 发布:淘宝全球购标志 编辑:程序博客网 时间:2024/06/05 17:59

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]]
原题链接:https://oj.leetcode.com/problems/binary-tree-level-order-traversal/

题目:给定一个二叉树,返回节点的层序遍历的值。(如,从左到右,一层一层)

思路:类似于广度优先遍历,可以将节点依次放入到队列中,再按层取出。

public List<List<Integer>> levelOrder(TreeNode root) {List<List<Integer>> list = new ArrayList<List<Integer>>();if (root == null)return list;Queue<TreeNode> queue = new LinkedList<TreeNode>();queue.add(root);while (!queue.isEmpty()) {List<Integer> li = new ArrayList<Integer>();int size = queue.size();for (int i = 0; i < size; i++) {TreeNode node = queue.poll();li.add(node.val);if (node.left != null)queue.add(node.left);if (node.right != null)queue.add(node.right);}list.add(li);}return list;}// Definition for binary treepublic class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) {val = x;}}




0 0
原创粉丝点击