网站登陆界面怎么做,wordpress建站方向,站群服务器是什么意思,广州网站优化页面题目#xff1a;
从上到下按层打印二叉树#xff0c;同一层的节点按从左到右的顺序打印#xff0c;每一层打印到一行。
例如:给定二叉树: [3,9,20,null,null,15,7]3/ \9 20/ \15 7返回其层次遍历结果#xff1a;
[[3],[9,20],[15,7]
]思考#xff1a; 题目要求从上到…题目
从上到下按层打印二叉树同一层的节点按从左到右的顺序打印每一层打印到一行。
例如:给定二叉树: [3,9,20,null,null,15,7]3/ \9 20/ \15 7返回其层次遍历结果
[[3],[9,20],[15,7]
]思考 题目要求从上到下按层打印二叉树也就是二叉树的广度优先搜索BFS BFS 通常借助 队列 的先入先出特性来实现 头结点先入队需要先判断头结点不为空防止空指针 然后开始循环条件为队列不为空 循环拿出队列中现有的所有结点也就是本层节点共 queue.size() 个采用 i–的方式循环因为队列在不停出队长度是变化的 拿出每一个结点加入到一个 list即本层的索引结点然后判断本层节点的左右结点是否存在存在就加入到对列中为下层的节点 将本层节点的 list 加入到结果集合开始下层循环
题解
class Solution {public ListListInteger levelOrder(TreeNode root) {ListListInteger res new ArrayList();//辅助对列QueueTreeNode queue new LinkedList();//这里需要判断一下不然root为null会空指针if (root ! null) queue.add(root);while (!queue.isEmpty()){ListInteger tmp new ArrayList();//用i--i不行for (int i queue.size(); i 0 ; i--) {TreeNode node queue.poll();if (node.left ! null) queue.add(node.left);if (node.right ! null) queue.add(node.right);tmp.add(node.val);}res.add(tmp);}return res;}
}