二叉树
Luck66Max
“放弃很容易,但坚持一定很酷!”
展开
-
剑指 Offer 38. 字符串的排列
【代码】剑指 Offer 38. 字符串的排列。原创 2023-02-14 21:32:58 · 55 阅读 · 0 评论 -
剑指 Offer 68 - II. 二叉树的最近公共祖先
百度百科中最近公共祖先的定义为:“对于有根树 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]给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。解释: 节点 5 和节点 1 的最近公共祖先是节点 3。原创 2023-02-14 14:46:15 · 65 阅读 · 0 评论 -
剑指 Offer 68 - I. 二叉搜索树的最近公共祖先
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8。例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。解释: 节点 2 和节点 8 的最近公共祖先是 6。原创 2023-02-14 14:45:46 · 52 阅读 · 0 评论 -
剑指 Offer 55 - II. 平衡二叉树
输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。给定二叉树 [3,9,20,null,null,15,7]原创 2023-02-14 14:44:37 · 70 阅读 · 0 评论 -
剑指 Offer 55 - I. 二叉树的深度
输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。给定二叉树 [3,9,20,null,null,15,7],返回它的最大深度 3。原创 2023-02-14 14:44:42 · 71 阅读 · 0 评论 -
剑指 Offer 54. 二叉搜索树的第k大节点
输入: root = [3,1,4,null,2], k = 1。给定一棵二叉搜索树,请找出其中第 k 大的节点的值。老是忘,这里再记一下笔记。原创 2023-02-14 14:43:46 · 57 阅读 · 0 评论 -
剑指 Offer 36. 二叉搜索树与双向链表
我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点。当转化完成以后,树中节点的左指针需要指向前驱,树中节点的右指针需要指向后继。还需要返回链表中的第一个节点的指针。输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。下图展示了上面的二叉搜索树转化成的链表。“head” 表示指向链表中有最小元素的节点。原创 2023-02-14 14:42:23 · 119 阅读 · 0 评论 -
剑指 Offer 34. 二叉树中和为某一值的路径
一点疑惑:为啥在参数里写target - root->val不对呢?我目前理解到的就是root->val要么是个固定值,要么是个不确定值,但我不知道它会如何变化。给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22。输出:[[5,4,11,2],[5,8,4,5]]叶子节点 是指没有子节点的节点。原创 2023-02-14 14:47:17 · 74 阅读 · 0 评论 -
剑指 Offer 33. 二叉搜索树的后序遍历序列
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。输入: [1,6,3,2,5]原创 2023-02-13 17:50:58 · 79 阅读 · 0 评论 -
剑指 Offer 32 - III. 从上到下打印二叉树 III
请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。给定二叉树: [3,9,20,null,null,15,7],原创 2023-02-13 17:22:35 · 60 阅读 · 0 评论 -
剑指 Offer 32 - II. 从上到下打印二叉树 II
从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。给定二叉树: [3,9,20,null,null,15,7],原创 2023-02-13 17:13:00 · 73 阅读 · 0 评论 -
剑指 Offer 32 - I. 从上到下打印二叉树
从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。给定二叉树: [3,9,20,null,null,15,7],原创 2023-02-13 17:11:49 · 69 阅读 · 0 评论 -
剑指 Offer 27. 二叉树的镜像
请完成一个函数,输入一个二叉树,该函数输出它的镜像。输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]原创 2023-02-13 16:57:15 · 57 阅读 · 0 评论 -
剑指 Offer 26. 树的子结构
输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。B是A的子结构, 即 A中有出现和B相同的结构和节点值。输入:A = [1,2,3], B = [3,1]转载 2023-02-13 16:36:31 · 54 阅读 · 0 评论 -
【二叉树】剑指 Offer 28. 对称的二叉树
判断一棵树是否为对称二叉树 思路:构造一个辅助函数判断两棵树是否是镜像对称的,然后题目只要判断两棵这个树是否镜像对称 而比较两棵树是否镜像对称,即一棵树的左子树和另一棵树的右子树,以及一棵树的右子树和另一棵树的左子树是否镜像对称 特殊判断:都是空树满足条件;其中有一棵空树不满足条件。如果一棵二叉树和它的镜像一样,那么它是对称的。输入:root = [1,2,2,null,3,null,3]例如,二叉树 [1,2,2,3,4,4,3] 是对称的。输入:root = [1,2,2,3,4,4,3]原创 2023-02-13 16:12:52 · 58 阅读 · 0 评论 -
【二叉树】572. 另一棵树的子树
给你两棵二叉树 root 和 subRoot。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true;否则,返回 false。二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。tree 也可以看做它自身的一棵子树。输入:root = [3,4,5,1,2], subRoot = [4,1,2]而判断 t 是否为 s 的。原创 2023-02-13 15:32:36 · 127 阅读 · 0 评论