105. 从前序与中序遍历序列构造二叉树 --力扣 --JAVA

题目 解题思路 先序遍历:根左右;中序遍历:左根右;从先序遍历中确定根节点,再从中序遍历中判断左右子树的长度范围,从而确定左右子树的根节点。 代码展示 class Solution { public TreeNode buildTree(int[] preorder, int[] inorder) { int size = preorder.length; Map<Integer,Integer> s...

102. 二叉树的层序遍历 --力扣 --JAVA

题目 解题思路 利用Map以层级作为key进行初始数据存储,最后再遍历Map存储结果到List中;添加当前节点到当前层级,通过递归传递层级到下一层即当前节点的左右子树; 代码展示 class Solution { private Map<Integer,List<Integer>> levelMap = new TreeMap<>(); public List<List<Integer>> level...

98. 验证二叉搜索树 --力扣 --JAVA

题目 解题思路 需要当前节点的值和父节点作比较,所以基础方法无法满足需要对方法进行重载或建立新的函数;val的值超出Integer.MAX_VALUE所以需要通过Long的最大最小值来进行初始化赋值;循环结束条件,当前节点为空;限定当前节点val的取值范围,并进行递归循环。 代码展示 class Solution { public boolean isValidBST(TreeNode root) {...

【LeetCode】每日一题 2023_12_4 从二叉搜索树到更大和树(二叉树)

文章目录 刷题前唠嗑题目:从二叉搜索树到更大和树题目描述代码与解题思路 结语 刷题前唠嗑 LeetCode?启动!!! 题目:从二叉搜索树到更大和树 题目链接:1038. 从二叉搜索树到更大和树 题目描述 代码与解题思路 这道题题目描述可能比较模糊,直接看题目给的样例就行,不管他本身是一棵什么树,直接从他的最右节点开始看: 然后你发现他的节点值和蓝字的值是一样的,节点的值是树当前的值,蓝字的值是我们...

二叉树k层的叶子结点个数

文章目录 1 题目2 思路2.1 思路12.2 思路2 3 代码实现3.1 思路13.2 思路23.3 完整的代码案例 1 题目 假设二叉树采用二叉链表存储结构,设计一个算法求其指定的第k层(k>1,跟是第1层)的叶子结点个数。 2 思路 2.1 思路1 设置一个全局变量记录某层叶子结点个数,前序遍历二叉树,并在遍历的过程中记录结点的层数。 2.2 思路2 层序遍历二叉树,记录某层的二叉树叶子结点个...

【LeetCode刷题-树】--144.二叉树的前序遍历

144.二叉树的前序遍历 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val,...

【LeetCode刷题(数据结构与算法)】:将二叉搜索树转化为排序的双向链表

将一个 二叉搜索树 就地转化为一个 已排序的双向循环链表 对于双向循环列表,你可以将左右孩子指针作为双向循环链表的前驱和后继指针,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点 特别地,我们希望可以 就地 完成转换操作。当转化完成以后,树中节点的左指针需要指向前驱,树中节点的右指针需要指向后继。还需要返回链表中最小元素的指针 示例 1: 输入:root = [4,2,5,1,3] 输...

【LeetCode:637. 二叉树的层平均值 | bfs】

🍔 目录 🚩 题目链接⛲ 题目描述🌟 求解思路&实现代码&运行结果⚡ BFS🥦 求解思路🥦 实现代码 - bfs🥦 运行结果 💬 共勉 🚩 题目链接 637. 二叉树的层平均值 ⛲ 题目描述 给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。 提示: 树中节点数量在 [1, 104] 范围内 -231 <= Node.val...

【LeetCode刷题(数据结构与算法)】:二叉搜索树的范围和

一、什么是二叉搜索树 二叉搜索树(BST,Binary Search Tree),也称二叉排序树或二叉查找树 二叉搜索树:一棵二叉树,可以为空;如果不为空,满足以下性质 非空左子树的所有键值小于其根结点的键值 非空右子树的所有键值大于其根结点的键值 左、右子树都是二叉搜索树 上图值为10的结点的右子树为7,比10小,不满足条件2,所以这棵树不是二叉搜索树 上图各个结点都满足条件,所以这棵树是二叉搜索...

LeetCode算法刷题(python) Day43|09动态规划|343. 整数拆分、96.不同的二叉搜索树

目录 LeetCode 343. 整数拆分LeetCode 96.不同的二叉搜索树 LeetCode 343. 整数拆分 力扣题目链接 正整数n,先拆成两个数i, n-i,拆成多个数可以对n-i进行拆分,然后对这些求最大值。 确定dp数组以及下标的含义:对i进行拆分的最大乘积确定递归公式:dp[i] = max(dp[i], j * (i - j), j * dp[i-j])dp数组如何初始化:dp...
© 2024 LMLPHP 关于我们 联系我们 友情链接 耗时0.004227(s)
2024-05-18 15:00:43 1716015643