BFS有两种用途(我分的类哈哈),1)tree; 2)graph。本文写tree的。tree的挺多的,这篇写基本款们,就是简单的。
题目 | 简介 |
---|---|
102. Binary Tree Level Order Traversal | 最基本 |
103. Binary Tree Zigzag Level Order Traversal | 加一个奇偶行flag |
107. Binary Tree Level Order Traversal II | 从叶子到根 |
199. Binary Tree Right Side View | 只求侧视图 |
429. N-ary Tree Level Order Traversal | 二叉树–>多叉树 |
102. Binary Tree Level Order Traversal
就是模板啦,写了很多遍了。
class Solution {
public List<List<Integer>> levelOrder(TreeNode root) {
List<List<Integer>> ret = new ArrayList<>();
if (root == null) {
return ret;}
Queue<TreeNode> q = new LinkedList<>();
q.add(root);
while (!q.isEmpty()) {
int len = q.size();
List<Integer> level = new ArrayList<>();
for (int i = 0; i < len; i++) {
TreeNode cur = q.poll(); //slower if using remove()
level.add(cur.val);
if (cur.left != null) {
q.add(cur.left);}
if (cur.right != null) {
q.add(cur.right);}
}
ret.