
二叉树
文章平均质量分 67
Ashiu
这个作者很懒,什么都没留下…
展开
-
236. 二叉树的最近公共祖先
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1。输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 4。因为根据定义最近公共祖先节点可以为节点本身。解释:节点 5 和节点 1 的最近公共祖先是节点 3。原创 2023-09-10 16:23:27 · 180 阅读 · 0 评论 -
222. 完全二叉树的节点个数
完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。链接:https://leetcode.cn/problems/summary-ranges。给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。输入:root = [1,2,3,4,5,6]击败 71.14%使用 Python 的用户。输入:root = [1]输入:root = []原创 2023-09-10 13:22:42 · 130 阅读 · 0 评论 -
173. 二叉搜索树迭代器
BSTIterator(TreeNode root) 初始化 BSTIterator 类的一个对象。指针应初始化为一个不存在于 BST 中的数字,且该数字小于 BST 中的任何元素。你可以假设 next() 调用总是有效的,也就是说,当调用 next() 时,BST 的中序遍历中至少存在一个下一个数字。注意,指针初始化为一个不存在于 BST 中的数字,所以对 next() 的首次调用将返回 BST 中的最小元素。// 返回 True。int next()将指针向右移动,然后返回指针处的数字。原创 2023-09-10 11:18:02 · 174 阅读 · 0 评论 -
124. 二叉树中的最大路径和
二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。该路径 至少包含一个 节点,且不一定经过根节点。解释:最优路径是 15 -> 20 -> 7 ,路径和为 15 + 20 + 7 = 42。解释:最优路径是 2 -> 1 -> 3 ,路径和为 2 + 1 + 3 = 6。输入:root = [-10,9,20,null,null,15,7]给你一个二叉树的根节点 root ,返回其 最大路径和。输入:root = [1,2,3]路径和 是路径中各节点值的总和。原创 2023-09-04 19:07:15 · 142 阅读 · 0 评论 -
129. 求根节点到叶节点数字之和
给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123。著作权归领扣网络所有。从根到叶子节点路径 4->9->5 代表数字 495。从根到叶子节点路径 4->9->1 代表数字 491。计算从根节点到叶节点生成的 所有数字之和。从根到叶子节点路径 1->2 代表数字 12。从根到叶子节点路径 1->3 代表数字 13。从根到叶子节点路径 4->0 代表数字 40。叶节点 是指没有子节点的节点。原创 2023-08-29 07:38:33 · 170 阅读 · 0 评论 -
112. 路径总和
给你二叉树的根节点 root 和一个表示目标和的整数 targetSum。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum。输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22。解释:由于树是空的,所以不存在根节点到叶子节点的路径。不存在 sum = 5 的根节点到叶子节点的路径。解释:等于目标和的根节点到叶节点路径如上图所示。叶子节点 是指没有子节点的节点。原创 2023-08-29 06:36:10 · 161 阅读 · 0 评论 -
114. 二叉树展开为链表
展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null。链接:https://leetcode.cn/problems/summary-ranges。输出:[1,null,2,null,3,null,4,null,5,null,6]商业转载请联系官方授权,非商业转载请注明出处。输入:root = [1,2,5,3,4,null,6]展开后的单链表应该与二叉树 先序遍历 顺序相同。输入:root = [0]输入:root = []原创 2023-08-28 16:36:07 · 105 阅读 · 0 评论 -
117. 填充每个节点的下一个右侧节点指针 II
解释:给定二叉树如图 A 所示,你的函数应该填充它的每个 next 指针,以指向其下一个右侧节点,如图 B 所示。序列化输出按层序遍历顺序(由 next 指针连接),‘#’ 表示每层的末尾。填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。使用递归解题也符合要求,本题中递归程序的隐式栈空间不计入额外空间复杂度。输入:root = [1,2,3,4,5,null,7]输出:[1,#,2,3,#,4,5,7,#]原创 2023-08-28 08:30:52 · 113 阅读 · 0 评论 -
106. 从中序与后序遍历序列构造二叉树
给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树。输入:inorder = [9,3,15,20,7], postorder = [9,15,7,20,3]链接:https://leetcode.cn/problems/summary-ranges。输入:inorder = [-1], postorder = [-1]输出:[3,9,20,null,null,15,7]原创 2023-08-26 09:13:28 · 207 阅读 · 0 评论 -
105. 从前序与中序遍历序列构造二叉树
给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。输入: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]链接:https://leetcode.cn/problems/summary-ranges。输入: preorder = [-1], inorder = [-1]输出: [3,9,20,null,null,15,7]原创 2023-08-23 07:11:56 · 128 阅读 · 0 评论 -
101. 对称二叉树
链接:https://leetcode.cn/problems/summary-ranges。输入:root = [1,2,2,null,3,null,3]输入:root = [1,2,2,3,4,4,3]击败 49.52%使用 Python3 的用户。击败 27.16%使用 Python3 的用户。击败 96.95%使用 Python3 的用户。击败 74.23%使用 Python3 的用户。击败 49.52%使用 Python3 的用户。击败 55.56%使用 Python3 的用户。原创 2023-08-21 19:08:09 · 124 阅读 · 0 评论 -
226. 翻转二叉树
给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。输入:root = [4,2,7,1,3,6,9]击败 58.46%使用 Python3 的用户。击败 62.91%使用 Python3 的用户。击败 80.10%使用 Python3 的用户。击败 30.39%使用 Python3 的用户。输出:[4,7,2,9,6,3,1]输入:root = [2,1,3]输入:root = []输出:[2,3,1]原创 2023-08-18 09:22:29 · 102 阅读 · 0 评论 -
100. 相同的树
给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。输入:p = [1,2], q = [1,null,2]输入:p = [1,2,3], q = [1,2,3]输入:p = [1,2,1], q = [1,1,2]击败 99.95%使用 Python3 的用户。击败 47.06%使用 Python3 的用户。击败 57.39%使用 Python3 的用户。击败 17.39%使用 Python3 的用户。原创 2023-08-17 21:40:20 · 135 阅读 · 0 评论 -
104. 二叉树的最大深度
链接:https://leetcode.cn/problems/summary-ranges。二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。商业转载请联系官方授权,非商业转载请注明出处。输入:root = [3,9,20,null,null,15,7]击败 80.23%使用 Python3 的用户。击败 83.83%使用 Python3 的用户。击败 60.13%使用 Python3 的用户。击败 66.22%使用 Python3 的用户。输入:root = [1,null,2]原创 2023-08-17 10:08:25 · 117 阅读 · 0 评论