@w1024020103
2017-06-25T15:54:24.000000Z
字数 908
阅读 644
LeetCode LintCode

注意:Level Order Traversal的时候基本都用BFS
这道题是二叉树上的宽度优先搜索
/*** Definition of TreeNode:* public class TreeNode {* public int val;* public TreeNode left, right;* public TreeNode(int val) {* this.val = val;* this.left = this.right = null;* }* }*/public class Solution {/*** @param root: The root of binary tree.* @return: Level order a list of lists of integer*/public ArrayList<ArrayList<Integer>> levelOrder(TreeNode root) {// write your code hereArrayList<ArrayList<Integer>> results = new ArrayList<>();if (root == null){return results;}Queue<TreeNode> queue = new LinkedList<TreeNode>();queue.offer(root);while (!queue.isEmpty()){ArrayList<Integer> level = new ArrayList<>();int size = queue.size();for (int i = 0; i < size; i++){TreeNode head = queue.poll();level.add(head.val);if (head.left != null){queue.offer(head.left);}if (head.right != null){queue.offer(head.right);}}results.add(level);}return results;}}

