深圳高端设计网站,在wordpress上添加播放视频,装饰设计师工作内容,自己做网站 最好的软件广度优先搜索解题#xff1a;
1.先定义接受的大集合数组 ListListInteger#xff0c;在创建一个队列来模拟树的进队列操作。
2.这道题的层序遍历重点在于每一层的全部结点组成一个数组来进行存储#xff0c;所以要如何辨别每一层的节点是解题关键。我们可… 广度优先搜索解题
1.先定义接受的大集合数组 ListListInteger在创建一个队列来模拟树的进队列操作。
2.这道题的层序遍历重点在于每一层的全部结点组成一个数组来进行存储所以要如何辨别每一层的节点是解题关键。我们可以用for循环来根据队列中的节点来进行每层节点的过程。
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/
class Solution {public ListListInteger levelOrder(TreeNode root) {//定义接受的大集合数组ListListInteger li1new ArrayListListInteger();//判断root为零的情况if(rootnull){return li1;}//声明一个队列QueueTreeNode qunew LinkedListTreeNode();//把root的根节点加入队列中qu.offer(root);//循环进队列和出队列while(!qu.isEmpty()){//定义的一个小集合数组ListInteger li2new ArrayListInteger();//获取队列中的长度int sizequ.size();//一层一层的遍历到定义的集合数组中去for(int i0;isize;i){//弹出节点TreeNode jqu.poll();//把弹出的节点加入到小的集合中去li2.add(j.val);//进行弹出节点的下一层左节点的进队列操作if(j.left!null){qu.offer(j.left);}//进行弹出节点的下一层右节点的进队列操作if(j.right!null){qu.offer(j.right);}}//把一层一层的节点小集合数组加入到大集合数组中li1.add(li2);}return li1;}
}