二叉树
春风又。
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 28. 对称的二叉树
(终于自己做出来一道递归题了 太不容易了)请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:示例 1:示例 2:来源:力扣(LeetCode)链接:https://leetcode.cn/problems/dui-cheng-de-er-cha-shu-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出原创 2022-07-04 21:17:52 · 87 阅读 · 0 评论 -
LeetCode606. 根据二叉树创建字符串
目录标题思路代码标题给你二叉树的根节点 root ,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。空节点使用一对空括号对 “()” 表示,转化后需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。示例 1:输入:root = [1,2,3,4]输出:“1(2(4))(3)”解释:初步转化后得到 “1(2(4)())(3()())” ,但省略所有不必要的空括号对后,字符串应该是"1(2(4))(3)" 。示例 2:输入:ro原创 2022-05-26 20:16:09 · 120 阅读 · 0 评论 -
JZ36 二叉搜索树与双向链表
目录题目代码题目数据范围:输入二叉树的节点数 0 \le n \le 10000≤n≤1000,二叉树中每个节点的值 0\le val \le 10000≤val≤1000要求:空间复杂度O(1)O(1)(即在原树上操作),时间复杂度 O(n)O(n)注意:1.要求不能创建任何新的结点,只能调整树中结点指针的指向。当转化完成以后,树中节点的左指针需要指向前驱,树中节点的右指针需要指向后继2.返回链表中的第一个节点的指针3.函数返回的TreeNode,有左右指针,其实可以看成一个双向链表的数据结原创 2022-05-25 19:42:30 · 71 阅读 · 0 评论 -
KY11 二叉树遍历
目录题目代码题目编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。 例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。输入描述:输入包括1行字符串,长度不超过100。输出描述:可能有多组测试数据,对于每组数据, 输出将输入字符串建立二叉树后中序遍历的序列,每个字符后面都有一个空格。 每个输出结果占一行。示例1输入: abc##de#g##f原创 2022-05-20 22:33:18 · 154 阅读 · 0 评论 -
LeetCode101. 对称二叉树
给你一个二叉树的根节点 root , 检查它是否轴对称。示例 1:输入:root = [1,2,2,3,4,4,3] 输出:true示例 2:输入:root = [1,2,2,null,3,null,3] 输出:false思路比较左右子树的镜像关系 = 左右子树根节点的值是否相等 && 左子树的左子树 和 右子树的右子树是不是镜像关系 && 左子树的右子树 和 右子树的左子树 是不是镜像关系代码class Solution { public原创 2022-05-17 21:49:49 · 74 阅读 · 0 评论 -
LeetCode110. 平衡二叉树
目录题目思路代码题目给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 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思路遍历二叉树,根据平衡二叉树的定义,计算每个节点的左右子树的高度,进原创 2022-05-17 20:59:41 · 70 阅读 · 0 评论 -
LeetCode104. 二叉树的最大深度
目录题目代码题目给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7],返回它的最大深度 3 。代码class Solution { public int maxDepth(TreeNode root) { if(root == null){ return 0; } in原创 2022-05-17 18:51:58 · 66 阅读 · 0 评论 -
LeetCode94. 二叉树的中序遍历
目录题目代码题目给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。示例 1:输入:root = [1,null,2,3] 输出:[1,3,2]示例 2:输入:root = [] 输出:[]示例 3:输入:root = [1] 输出:[1]代码class Solution { public List<Integer> inorderTraversal(TreeNode root) { List<Integer> re原创 2022-05-15 21:03:31 · 118 阅读 · 0 评论 -
LeetCode100. 相同的树
目录题目思路:代码:题目给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入:p = [1,2,3], q = [1,2,3] 输出:true示例 2:输入:p = [1,2], q = [1,null,2] 输出:false示例 3:输入:p = [1,2,1], q = [1,1,2] 输出:false思路:先比较两个数的跟节点的值是否相同,如果相同,再递归比较原创 2022-05-15 20:38:23 · 67 阅读 · 0 评论 -
LeetCode144. 二叉树的前序遍历
文章目录题目代码题目给你二叉树的根节点 root ,返回它节点值的 前序 遍历。示例 1:输入:root = [1,null,2,3] 输出:[1,2,3]示例 2:输入:root = [] 输出:[]示例 3:输入:root = [1] 输出:[1]示例 4:输入:root = [1,2] 输出:[1,2]示例 5:输入:root = [1,null,2] 输出:[1,2]代码class Solution { public List<In原创 2022-05-15 19:55:05 · 218 阅读 · 0 评论