网站解析时候让做别名,企业密信app下载安装,做vip视频网站侵权,自己如何创建一个网站文章目录 5.6 515_在每个树行中找最大值5.6.1问题5.6.2解法#xff1a;层序遍历 5.7 116_填充每个节点的下一个右侧节点指针5.7.1问题5.7.2解法#xff1a;层序遍历 5.8 116_填充每个节点的下一个右侧节点指针||5.8.1问题5.8.2解法#xff1a;层序遍历 5.9 104_二叉树的最大… 文章目录 5.6 515_在每个树行中找最大值5.6.1问题5.6.2解法层序遍历 5.7 116_填充每个节点的下一个右侧节点指针5.7.1问题5.7.2解法层序遍历 5.8 116_填充每个节点的下一个右侧节点指针||5.8.1问题5.8.2解法层序遍历 5.9 104_二叉树的最大深度5.9.1问题5.9.2解法层序遍历 5.10 111_二叉树的最小深度5.10.1问题5.10.2解决 5.6 515_在每个树行中找最大值
5.6.1问题
给定一棵二叉树的根节点 root 请找出该二叉树中每一层的最大值。
示例一 输入: root [1,3,2,5,3,null,9]
输出: [1,3,9]5.6.2解法层序遍历
class Solution {public ListInteger largestValues(TreeNode root) {QueueTreeNode queuenew LinkedList();ListInteger listnew ArrayList();if(rootnull){return list;}queue.offer(root);while(!queue.isEmpty()){int lenqueue.size();int maxInteger.MIN_VALUE;while(len0){TreeNode nodequeue.poll();maxmaxnode.val?max:node.val;if(node.left!null){queue.offer(node.left);}if(node.right!null){queue.offer(node.right);}len--;}list.add(max);}return list;}
}5.7 116_填充每个节点的下一个右侧节点指针
5.7.1问题
给定一个 完美二叉树 其所有叶子节点都在同一层每个父节点都有两个子节点。二叉树定义如下
struct Node {int val;Node *left;Node *right;Node *next;
}填充它的每个 next 指针让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点则将 next 指针设置为 NULL。
初始状态下所有 next 指针都被设置为 NULL。
示例一 输入root [1,2,3,4,5,6,7]
输出[1,#,2,3,#,4,5,6,7,#]
解释给定二叉树如图 A 所示你的函数应该填充它的每个 next 指针以指向其下一个右侧节点如图 B 所示。序列化的输出按层序遍历排列同一层节点由 next 指针连接# 标志着每一层的结束。5.7.2解法层序遍历
class Solution {public Node connect(Node root) {QueueNode queuenew LinkedList();if(rootnull){return root;} queue.offer(root);while(!queue.isEmpty()){int lenqueue.size();for(int i0;ilen;i){Node nodequeue.poll();if(ilen-1){//最后一个节点node.nextnull;}else{//非最后一个节点node.nextqueue.peek();}if(node.left!null){queue.offer(node.left);}if(node.right!null){queue.offer(node.right);}}}return root;}
}5.8 116_填充每个节点的下一个右侧节点指针||
5.8.1问题
给定一个二叉树
struct Node {int val;Node *left;Node *right;Node *next;
}填充它的每个 next 指针让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点则将 next 指针设置为 NULL 。
初始状态下所有 next 指针都被设置为 NULL 。
示例一 输入root [1,2,3,4,5,null,7]
输出[1,#,2,3,#,4,5,7,#]
解释给定二叉树如图 A 所示你的函数应该填充它的每个 next 指针以指向其下一个右侧节点如图 B 所示。序列化输出按层序遍历顺序由 next 指针连接# 表示每层的末尾。5.8.2解法层序遍历
这道题目说是二叉树但116题目说是完整二叉树其实没有任何差别一样的代码一样的逻辑
5.9 104_二叉树的最大深度
5.9.1问题
给定一个二叉树 root 返回其最大深度。
二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
示例一 输入root [3,9,20,null,null,15,7]
输出35.9.2解法层序遍历
class Solution {public int maxDepth(TreeNode root) {QueueTreeNode queuenew LinkedList();int max0;if(rootnull){return max;}queue.offer(root);while(!queue.isEmpty()){int lenqueue.size();while(len0){TreeNode nodequeue.poll();if(node.left!null){queue.offer(node.left);}if(node.right!null){queue.offer(node.right);}len--;}max;}return max;}
}5.10 111_二叉树的最小深度
5.10.1问题
给定一个二叉树找出其最小深度。
最小深度是从根节点到最近叶子节点的最短路径上的节点数量。
**说明**叶子节点是指没有子节点的节点。
示例一 输入root [3,9,20,null,null,15,7]
输出25.10.2解决
class Solution {public int minDepth(TreeNode root) {QueueTreeNode queuenew LinkedList();int max0;if(rootnull){return max;}queue.offer(root);while(!queue.isEmpty()){int lenqueue.size();while(len0){TreeNode nodequeue.poll();if(node.left!null){queue.offer(node.left);}if(node.right!null){queue.offer(node.right);}//注意若该节点的左右孩子均为空则到达最低点if(node.leftnull node.rightnull){max; //算上该层return max;}len--;}max;}return max;}
}