随笔分类 - 二叉树
摘要:题目链接:https://leetcode-cn.com/problems/populating-next-right-pointers-in-each-node 题目描述: 给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node { i
阅读全文
摘要:题目链接:https://leetcode-cn.com/problems/subtree-of-another-tree/ 题目描述: 给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回
阅读全文
摘要:**题目链接:**https://leetcode-cn.com/problems/populating-next-right-pointers-in-each-node-ii/ 题目描述: 给定一个二叉树 struct Node { int val; Node *left; Node *right
阅读全文
摘要:题目链接:https://leetcode-cn.com/problems/balance-a-binary-search-tree 题目描述: 给你一棵二叉搜索树,请你返回一棵 平衡后 的二叉搜索树,新生成的树应该与原来的树有着相同的节点值。 如果一棵二叉搜索树中,每个节点的两棵子树高度差不超过
阅读全文
摘要:题目链接:https://leetcode-cn.com/problems/sum-root-to-leaf-numbers 题目描述: 给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。 每条从根节点到叶节点的路径都代表一个数字: 例如,从根节点到叶节点的路径
阅读全文
摘要:题目链接:https://leetcode-cn.com/problems/unique-binary-search-trees/ 题目描述: 题解: 1.有一个节点时:dp[1] = 1; 2.有两个节点时:dp[2] = dp[0] * dp[1] + dp[1] * dp[0]; //左子树0
阅读全文
摘要:题目链接: https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list/ 题目描述: 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链
阅读全文
摘要:题目链接:https://leetcode-cn.com/problems/leaf-similar-trees 题目描述: 请考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。 举个例子,如上图所示,给定一棵叶值序列为 (6, 7, 4, 9, 8) 的树。 如果有
阅读全文
摘要:题目链接:https://leetcode-cn.com/problems/implement-trie-prefix-tree 题目描述: Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写
阅读全文
摘要:题目链接:https://leetcode-cn.com/problems/verify-preorder-serialization-of-a-binary-tree 题目描述: 序列化二叉树的一种方法是使用前序遍历。当我们遇到一个非空节点时,我们可以记录下这个节点的值。如果它是一个空节点,我们可
阅读全文
摘要:题目链接:https://leetcode-cn.com/problems/delete-node-in-a-bst/ 题目描述: 给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用
阅读全文
摘要:题目链接:https://leetcode-cn.com/problems/insert-into-a-binary-search-tree 题目描述: 给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 ,新值和原始二叉搜索树中的
阅读全文
摘要:题目链接:https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-search-tree/ 题目描述: 题解: /** * Definition for a binary tree node. * struct Tree
阅读全文
摘要:题目链接:https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree 题目描述: 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近
阅读全文
摘要:题目链接:https://leetcode-cn.com/problems/find-mode-in-binary-search-tree 题目描述: 给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。 假定 BST 有如下定义: 结点左子树中所含结点的值小于
阅读全文
摘要:题目链接:https://leetcode-cn.com/problems/minimum-absolute-difference-in-bst/ 题目描述: 方法一: 1.中序遍历二叉树,得到一个有序数组 2.遍历数组,比较两个相邻元素的差值,返回最小值 /** * Definition for
阅读全文
摘要:题目链接:https://leetcode-cn.com/problems/validate-binary-search-tree 题目描述: 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的
阅读全文
摘要:题目链接:https://leetcode-cn.com/problems/maximum-binary-tree 题目描述: 给定一个不含重复元素的整数数组 nums 。一个以此数组直接递归构建的 最大二叉树 定义如下: 二叉树的根是数组 nums 中的最大元素。 左子树是通过数组中 最大值左边部
阅读全文
摘要:1.对称二叉树 题目链接:https://leetcode-cn.com/problems/symmetric-tree/ 题目描述: 题解: class Solution { public: bool check(TreeNode *p, TreeNode *q) { if (p == NULL
阅读全文