外贸网站啥需要掌握在自己手里,安卓搭建wordpress,四川企业seo,惠州网题目#xff1a;102. 二叉树的层序遍历
给你二叉树的根节点 root #xff0c;返回其节点值的 层序遍历 。 #xff08;即逐层地#xff0c;从左到右访问所有节点#xff09;。 示例 1#xff1a; 输入#xff1a;root [3,9,20,null,null,15,7]
输出#xff1a;[[3],[…题目102. 二叉树的层序遍历
给你二叉树的根节点 root 返回其节点值的 层序遍历 。 即逐层地从左到右访问所有节点。 示例 1 输入root [3,9,20,null,null,15,7]
输出[[3],[9,20],[15,7]]示例 2
输入root [1]
输出[[1]]示例 3
输入root []
输出[] 代码
class Solution {public ListListInteger levelOrder(TreeNode root) {QueueTreeNode queue new LinkedList();ListListInteger res new LinkedList();if(root ! null) queue.add(root);while(!queue.isEmpty()) {int size queue.size();ListInteger list new LinkedList();while(size 0) {TreeNode node queue.remove();list.add(node.val);if(node.left ! null) queue.add(node.left);if(node.right ! null) queue.add(node.right);size--;}res.add(list);}return res;}
} 思路
层序遍历利用队列的长度快照为每层的长度
当父节点被remove时孩子结点就加入队列直到size为0时就是这一层的结点加入到二维数组。再进行下一层的遍历。
会了这一种思路就可以一打十啦已完成。