二叉树
allesistgut
这个作者很懒,什么都没留下…
展开
-
【力扣】二叉树的坡度 ----- 深度优先搜索
563 二叉树的坡度给定一个二叉树,计算 整个树 的坡度 。一个树的 节点的坡度 定义即为,该节点左子树的节点之和和右子树节点之和的 差的绝对值 。如果没有左子树的话,左子树的节点之和为 0 ;没有右子树的话也是一样。空结点的坡度是 0 。整个树 的坡度就是其所有节点的坡度之和。示例 1:输入:root = [1,2,3]输出:1解释:节点 2 的坡度:|0-0| = 0(没有子节点)节点 3 的坡度:|0-0| = 0(没有子节点)节点 1 的坡度:|2-3| = 1(左子树就是左子.原创 2020-12-23 15:08:38 · 161 阅读 · 0 评论 -
【力扣】(中等) 331. 验证二叉树的前序序列化 ---- 辅助栈
331 验证二叉树的前序序列化来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/verify-preorder-serialization-of-a-binary-tree序列化二叉树的一种方法是使用前序遍历。当我们遇到一个非空节点时,我们可以记录下这个节点的值。如果它是一个空节点,我们可以使用一个标记值记录,例如 #。 _9_ / \ 3 2 / \ / \ 4 1 # 6/ \ / \.原创 2020-11-18 15:53:09 · 97 阅读 · 0 评论 -
【力扣】543 二叉树的直径 --- 深度优先搜索
543 二叉树的直径来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/diameter-of-binary-tree给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。解题思路:【python3】深度优先搜索:和求二叉树高度不一样的是,直径可能不穿过根节点,不能用根的左子树+右子树高度(可惜题目提醒了我,我也卡在这里好久= =)。递归遍历所有节点,计算其左子树与右子树的.原创 2020-11-16 16:56:22 · 113 阅读 · 0 评论 -
【力扣】(中等)面试题04.05. 合法二叉搜索树 --- 中序遍历+递归
面试题04.05. 合法二叉搜索树来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/legal-binary-search-tree-lcci实现一个函数,检查一棵二叉树是否为二叉搜索树。输入: 5 / \ 1 4 / \ 3 6输出: false解释: 输入为: [5,1,4,null,null,3,6]。 根节点的值为 5 ,但是其右子节点值为 4 。Notes: 二叉搜索树任意.原创 2020-11-16 16:13:57 · 88 阅读 · 0 评论 -
【剑指 Offer 随笔】 (中等)33. 二叉搜索树的后序遍历序列 --- 递归
33 二叉搜索树的后序遍历序列来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-hou-xu-bian-li-xu-lie-lcof输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。Notes:二叉搜索树任意根节点均大于其左子树的所有节点,右子树所有节点均大于根节点解题思路:【python 3】递归:数.原创 2020-11-12 16:40:27 · 76 阅读 · 0 评论 -
【剑指 Offer 随笔】(中等)34. 二叉树中和为某一值的路径 --- 深度优先搜索 + 先序遍历
34 二叉树中和为某一值的路径来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/er-cha-shu-zhong-he-wei-mou-yi-zhi-de-lu-jing-lcof输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ .原创 2020-11-12 14:49:12 · 127 阅读 · 2 评论 -
【剑指 Offer 随笔】(中等)36. 二叉搜索树与双向链表 -- 中序遍历
36 二叉搜索树与双向链表来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-yu-shuang-xiang-lian-biao-lcof输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节点,最后一个节点的后继是第.原创 2020-11-09 18:18:59 · 131 阅读 · 0 评论 -
【力扣】面试题 04.04. 二叉树检查平衡性 -- 深度优先搜索(递归)
面试题 04.04. 检查平衡性来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/check-balance-lcci实现一个函数,检查二叉树是否平衡。在这个问题中,平衡树的定义如下:任意一个节点,其两棵子树的高度差不超过 1。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \9 20 / \ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4.原创 2020-11-04 11:33:45 · 153 阅读 · 0 评论 -
【剑指 Offer 随笔】28 对称的二叉树 -- 递归or栈/队列
28 对称的二叉树来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/dui-cheng-de-er-cha-shu-lcof请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1.原创 2020-10-19 01:43:00 · 105 阅读 · 0 评论 -
【剑指 Offer 随笔】27 二叉树的镜像 -- 递归or栈
27 二叉树的镜像来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/er-cha-shu-de-jing-xiang-lcof请完成一个函数,输入一个二叉树,该函数输出它的镜像。例如输入: 4 / \ 2 7 / \ / \1 3 6 9镜像输出: 4 / \ 7 2 / \ / \9 6 3 1示例 1:输入:root = [4,2,7,1.原创 2020-10-17 23:02:31 · 75 阅读 · 0 评论 -
【剑指 Offer 随笔】07 重建二叉树
07 重建二叉树来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/zhong-jian-er-cha-shu-lcof输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 1.原创 2020-10-09 11:01:40 · 95 阅读 · 0 评论 -
【剑指 Offer 随笔】二叉树------55. 深度(递归)
剑指 Offer 55 - I. 二叉树的深度来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/er-cha-shu-de-shen-du-lcof输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。# python 3# Definition for a binary tree node.# class TreeNode:# def __init__(s.原创 2020-11-12 16:51:51 · 125 阅读 · 1 评论