做财经类网站要许可吗,郑州app开发公司,网站建设备案信息,百度关键词排名查询题目
给你二叉树的根节点 root #xff0c;返回其节点值的 层序遍历 。 #xff08;即逐层地#xff0c;从左到右访问所有节点#xff09;。
示例 1#xff1a;
输入#xff1a;root [3,9,20,null,null,15,7] 输出#xff1a;[[3],[9,20],[15,7]] 示例 2#xff1a…题目
给你二叉树的根节点 root 返回其节点值的 层序遍历 。 即逐层地从左到右访问所有节点。
示例 1
输入root [3,9,20,null,null,15,7] 输出[[3],[9,20],[15,7]] 示例 2
输入root [1] 输出[[1]] 示例 3
输入root [] 输出[]
提示
树中节点数目在范围 [0, 2000] 内 -1000 Node.val 1000
题解
两个数组
/*** 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) {if (root null) {return List.of();//建立一个空list}ListListInteger ans new ArrayList();ListTreeNode cur new ArrayList();cur.add(root);while (!cur.isEmpty()) {ListTreeNode nxt new ArrayList();ListInteger vals new ArrayList(cur.size());for(TreeNode node : cur) {vals.add(node.val);if (node.left ! null) nxt.add(node.left);if (node.right ! null) nxt.add(node.right);}cur nxt;ans.add(vals);}return ans;}
}队列
/*** 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) {if (root null) {return List.of();}ListListInteger ans new ArrayList();QueueTreeNode q new ArrayDeque();q.add(root);while (!q.isEmpty()) {int n q.size();ListInteger vals new ArrayList(n);while (n-- 0) {TreeNode node q.poll();//删除队头的元素vals.add(node.val);if (node.left ! null) q.add(node.left);if (node.right ! null) q.add(node.right);}ans.add(vals);}return ans;}
}