目录
10.15
层序遍历模板
class Solution { //借助队列
public List<List<Integer>> resList = new ArrayList<>();
public List<List<Integer>> levelOrderBottom(TreeNode root) {
checkFun(root);
return resList;
}
public void checkFun(TreeNode node){
if(node==null) return;
Queue<TreeNode> que = new LinkedList<>();
que.offer(node);
while(!que.isEmpty()){
int len = que.size(); //借助队列时len就是每一层的节点个数!!
List<Integer> listItem = new ArrayList<>();
while(len>0)
{
TreeNode tmpNode = que.poll();
listItem.add(tmpNode.val);
if(tmpNode.left!=null) que.offer(tmpNode.left);
if(tmpNode.right!=null) que.offer(tmpNode.right);
len--;
}
resList.add(listItem);
}
}
}
根据模板完成
- 102.二叉树的层序遍历
- 107.二叉树的层次遍历II
- 199.二叉树的右视图
- 637.二叉树的层平均值
- 429.N叉树的层序遍历
- 515.在每个树行中找最大值
- 116.填充每个节点的下一个右侧节点指针
- 117.填充每个节点的下一个右侧节点指针II
- 104.二叉树的最大深度
- 111.二叉树的最小深度