二叉树
二叉树
千叶真尹
这个作者很懒,什么都没留下…
展开
-
leetcode二叉树103二叉树的锯齿形层序遍历
给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。示例 1:输入:root = [3,9,20,null,null,15,7]输出:[[3],[20,9],[15,7]]示例 2:输入:root = [1]输出:[[1]]示例 3:输入:root = []输出:[]注意点:关于顺序的问题1.removeFirst()永远是和addLast()搭配,removeLast()永远是和原创 2022-02-22 18:09:57 · 6814 阅读 · 0 评论 -
leetcode112. 路径总和
给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。叶子节点 是指没有子节点的节点。输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22输出:true解释:等于目标和的根节点到叶节点路径如上图所示。三部曲:终止条件;返回原创 2022-01-27 15:01:20 · 357 阅读 · 0 评论 -
leetcode二叉树226翻转二叉树
翻转一棵二叉树。示例:输入: 4 / \ 2 7/ \ / \1 3 6 9输出: 4 / \ 7 2/ \ / \9 6 3 1解析:每次交换的是当前节点其左右子节点的值我们来看一下递归三部曲:确定递归函数的参数和返回值参数就是要传入节点的指针,不需要其他参数了,通常此时定下来主要参数,如果在写递归的逻辑中发现还需要其他参数的时候,随时补充。返回值的话其实也不需要,但是题目中...原创 2022-01-21 14:19:20 · 67 阅读 · 0 评论 -
leetcode二叉树111二叉树的最小深度
给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例 1:输入:root = [3,9,20,null,null,15,7]输出:2示例 2:输入:root = [2,null,3,null,4,null,5,null,6]输出:5做递归的题目也有一阵子了,却感觉自己总在门外徘徊,在此引用leetcode上别人关于递归的一个总结(来自main):写出结束条件 不要把树复杂化,就当做树是三原创 2022-01-18 14:16:12 · 59 阅读 · 0 评论 -
leetcode二叉树110平衡二叉树
给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1 。示例 1:输入:root = [3,9,20,null,null,15,7]输出:true示例 2:输入:root = [1,2,2,3,3,null,null,4,4]输出:false示例 3:输入:root = []输出:true解析:平衡二叉树要求每个节点上,其左子树和右子树其高度差不超过1,如下图,红色节点为.原创 2021-12-24 16:10:48 · 70 阅读 · 0 评论 -
leetcode二叉树100相同的树
给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。输入:p = [1,2,3], q = [1,2,3]输出:true输入:p = [1,2], q = [1,null,2]输出:false输入:p = [1,2,1], q = [1,1,2]输出:false两个二叉树相同,当且仅当两个二叉树的结构完全相同,且所有对应节点的值相同。因此,可以通过搜索的方式判断两个二叉树是否相同。方法一:深度原创 2021-12-22 09:56:17 · 66 阅读 · 0 评论 -
leetcode104二叉树的最大深度
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度3 。思路:假设二叉树样子为(编号1,2,3,4,5,6,7): 1 / \ 2 3/ \ / \4 56 7对于根节点,编号1 二叉树的最大深度为 m...原创 2021-12-21 16:21:10 · 47 阅读 · 0 评论 -
leetcode二叉树101对称二叉树
给定一个二叉树,检查它是否是镜像对称的。例如,二叉树[1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2/ \ / \3 4 4 3但是下面这个[1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3思路:定义两个指针(左右),一开始都在root节点,随后左指针左移时右指针右移,或者左指针右移时右指针左移,每次检查两者value是否相等以及他们的...原创 2021-12-20 17:30:57 · 1735 阅读 · 0 评论 -
leetcode二叉树94二叉树的中序遍历
给定一个二叉树的根节点 root ,返回它的 中序遍历。示例 1:输入:root = [1,null,2,3]输出:[1,3,2]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]示例 4:输入:root = [1,2]输出:[2,1]示例 5:输入:root = [1,null,2]输出:[1,2]二叉树的中序遍历,需要注意的两个点:1.递归的本质是相同的方法,传入不同的参数,所以即便是一直调用递归,但.原创 2021-12-20 16:20:05 · 316 阅读 · 0 评论