树-二叉搜索树
文章平均质量分 90
memcpy0
希望探索文理结合的自由之路。
展开
-
LeetCode 501. 二叉搜索树中的众数【二叉搜索树中序遍历+Morris遍历】简单
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。。原创 2023-11-02 00:39:16 · 342 阅读 · 0 评论 -
LeetCode 1373. Maximum Sum BST in Binary Tree【DFS,二叉搜索树】困难
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。。原创 2023-05-20 11:24:37 · 599 阅读 · 0 评论 -
LeetCode C++ 面试题 04.06. Successor LCCI【Binary Search Tree/DFS】中等
Write an algorithm to find the “next” node (i.e., in-order successor) of a given node in a binary search tree.Return null if there’s no “next” node for the given node.Example 1:Input: root = [2,1,3], p = 1 2 / \1 3Output: 2Example 2:Input: r原创 2020-11-26 23:20:54 · 241 阅读 · 0 评论 -
LeetCode C++ 面试题 04.05. Legal Binary Search Tree LCCI【Binary Search Tree/DFS】中等
Implement a function to check if a binary tree is a binary search tree.Example 1:Input: 2 / \ 1 3Output: trueExample 2:Input: 5 / \ 1 4 / \ 3 6Output: falseExplanation: Input: [5,1,4,null,null,3,6]. the value o原创 2020-11-26 22:28:55 · 198 阅读 · 0 评论 -
LeetCode C++ 面试题 04.02. Minimum Height Tree LCCI【Tree/Recursion】简单
Given a sorted (increasing order) array with unique integer elements, write an algorithm to create a binary search tree with minimal height.Example:Given sorted array: [-10,-3,0,5,9],One possible answer is: [0,-3,9,-10,null,5],which represents the fol原创 2020-11-24 01:22:01 · 175 阅读 · 0 评论 -
LeetCode C++ 面试题 17.12. BiNode LCCI【Tree/Recursion】简单
The data structure TreeNode is used for binary tree, but it can also used to represent a single linked list (where left is null, and right is the next node in the list). Implement a method to convert a binary search tree (implemented with TreeNode) into a原创 2020-11-15 15:12:16 · 197 阅读 · 0 评论 -
LeetCode C++ 938. Range Sum of BST【Tree/Recursion】简单
Given the root node of a binary search tree, return the sum of values of all nodes with value between L and R (inclusive).The binary search tree is guaranteed to have unique values.Example 1:Input: root = [10,5,15,3,7,null,18], L = 7, R = 15Output: 32原创 2020-10-23 21:41:18 · 159 阅读 · 0 评论 -
LeetCode C++ 530. Minimum Absolute Difference in BST【Binary Search Tree/Recursion】简单
Given a binary search tree with non-negative values, find the minimum absolute difference between values of any two nodes.Example:Input: 1 \ 3 / 2Output:1Explanation:The minimum absolute difference is 1, which is the difference原创 2020-10-18 12:49:04 · 157 阅读 · 0 评论 -
LeetCode C++ 783. Minimum Distance Between BST Nodes【Binary Search Tree/Recursion】简单
Given a Binary Search Tree (BST) with the root node root, return the minimum difference between the values of any two different nodes in the tree.Example :Input: root = [4,2,6,1,3,null,null]Output: 1Explanation:Note that root is a TreeNode object, not原创 2020-10-18 12:42:59 · 180 阅读 · 0 评论 -
LeetCode C++ 653. Two Sum IV - Input is a BST【Binary Search Tree/Two Pointers/Recursion】简单
Given the root of a Binary Search Tree and a target number k, return true if there exist two elements in the BST such that their sum is equal to the given target.Example 1:Input: root = [5,3,6,2,4,null,7], k = 9Output: trueExample 2:Input: root = [原创 2020-10-16 21:06:16 · 268 阅读 · 0 评论 -
LeetCode C++ 剑指 Offer 54. 二叉搜索树的第k大节点【Binary Search Tree/DFS】简单
给定一棵二叉搜索树,请找出其中第 k 的节点。示例 1:输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2输出: 4示例 2:输入: root = [5,3,6,2,4,null,null,1], k = 3 5 / \ 3 6 / \ 2 4 / 1输出: 4 限制: 1 ≤ k ≤ 二叉搜索树元素个数...原创 2020-10-08 14:02:27 · 225 阅读 · 0 评论 -
LeetCode C++ 897. Increasing Order Search Tree【Tree/DFS】简单
Given a binary search tree, rearrange the tree in in-order so that the leftmost node in the tree is now the root of the tree, and every node has no left child and only 1 right child.Example 1:Input: [5,3,6,2,4,null,8,1,null,null,null,7,9] 5 / \3原创 2020-10-06 14:51:27 · 193 阅读 · 0 评论 -
LeetCode C++ 450. Delete Node in a BST【二叉搜索树】中等
Given a root node reference of a BST and a key, delete the node with the given key in the BST. Return the root node reference (possibly updated) of the BST.Basically, the deletion can be divided into two stages: Search for a node to remove. If the node原创 2020-10-03 10:58:07 · 165 阅读 · 0 评论 -
LeetCode C++ 1305. All Elements in Two Binary Search Trees【二叉搜索树/DFS】中等
Given two binary search trees root1 and root2 . Return a list containing all the integers from both trees sorted in ascending order.Example 1:Input: root1 = [2,1,4], root2 = [1,0,3]Output: [0,1,1,2,3,4]Example 2:Input: root1 = [0,-10,10], root2 = [5原创 2020-10-02 16:48:44 · 169 阅读 · 0 评论 -
LeetCode C++ 701. Insert into a Binary Search Tree【二叉搜索树】中等
Given the root node of a binary search tree (BST) and a value to be inserted into the tree, insert the value into the BST. Return the root node of the BST after the insertion. It is guaranteed that the new value does not exist in the original BST.Not原创 2020-09-26 17:03:25 · 208 阅读 · 0 评论 -
LeetCode C++ 700. Search in a Binary Search Tree【二叉搜索树】简单
Given the root node of a binary search tree BST and a value. You need to find the node in the BST that the node’s value equals the given value. Return the subtree rooted with that node. If such node doesn’t exist, you should return NULL .For example,Give原创 2020-09-26 16:23:19 · 157 阅读 · 0 评论 -
LeetCode C++ 173. Binary Search Tree Iterator【二叉搜索树/栈/设计】中等
Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the root node of a BST. Calling next() will return the next smallest number in the BST.Example:BSTIterator iterator = new BSTIterator(root);iterator.next();原创 2020-09-22 18:29:31 · 232 阅读 · 0 评论 -
LeetCode C++ 98. Validate Binary Search Tree【二叉搜索树/DFS】中等
Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defined as follows:The left subtree of a node contains only nodes with keys less than the node’s key.The right subtree of a node contains only nodes with keys grea原创 2020-09-22 15:27:54 · 155 阅读 · 1 评论 -
LeetCode C++ 538. Convert BST to Greater Tree【二叉搜索树】简单
Given a Binary Search Tree (BST), convert it to a Greater Tree such that every key of the original BST is changed to the original key plus sum of all keys greater than the original key in BST.Example:Input: The root of a Binary Search Tree like this:原创 2020-09-22 01:44:09 · 201 阅读 · 0 评论 -
LeetCode C++ 1038. Binary Search Tree to Greater Sum Tree【二叉搜索树】中等
Given the root of a binary search tree with distinct values, modify it so that every node has a new value equal to the sum of the values of the original tree that are greater than or equal to node.val .As a reminder, a binary search tree is a tree that sa原创 2020-09-22 01:38:33 · 180 阅读 · 0 评论 -
LeetCode C++ 315. Count of Smaller Numbers After Self【二叉搜索树/线段树/树状数组/分治】困难
You are given an integer array nums and you have to return a new counts array. The counts array has the property where counts[i] is the number of smaller elements to the right of nums[i] .Example:Input: [5,2,6,1]Output: [2,1,1,0] Explanation:To the ri原创 2020-07-11 13:40:35 · 291 阅读 · 0 评论 -
【数据结构Java实现】树专题之二叉搜索树
文章目录一、引子二、二叉搜索树Binary Search Tree基础三、二叉搜索树添加新元素四、二叉搜索树查询元素五、二叉(搜索)树的前序遍历十、二叉(搜索)树的层序遍历从现在开始,进入树的阶段,按理说应该先介绍树的概念、存储,二叉树的概念和构建,二叉树和树的转换等等理论知识,不过这系列文章主要是为了实现一些有用的数据结构,因此直接进入二叉搜索树的范畴。一、引子为什么要用树结构?因为快。对...原创 2020-03-16 13:58:04 · 474 阅读 · 0 评论