当前位置:网站首页>[leetcode] 700 and 701 (search and insert of binary search tree)
[leetcode] 700 and 701 (search and insert of binary search tree)
2022-07-07 03:33:00 【Learn a little every day】
Binary search tree
Binary search tree as a classic data structure , It has the characteristics of quick insertion and deletion of linked list , It also has the advantage of fast array search ; So it's widely used , For example, in the file system and database system, this data structure is generally used for efficient sorting and retrieval operations .
BST Basic operation of : Judge BST Legitimacy 、 increase 、 Delete 、 check .
This paper introduces how to use the characteristics of binary search tree to realize 「 Search for 」 and 「 increase 」 operation .
700. Search in binary search tree
solution : recursive
The search of ordinary binary tree needs to traverse all nodes to judge in turn . For binary search tree , You can take advantage of its small on the left and large on the right , Do something like ⼆ Sub search operation , Improve search ⼀ The efficiency of elements . At this time, for any node 「 What to do 」 Judge as follows :
- If the current element is less than the target value , Then enter the left subtree search
- If the current element is greater than the target value , Then enter the right subtree search
- If equal , The current node is returned
class Solution:
def searchBST(self, root: TreeNode, val: int) -> TreeNode:
if not root:
return None
if root.val == val:
return root
elif root.val > val:
result = self.searchBST(root.left, val)
else:
result = self.searchBST(root.right, val)
return result
701. Insert operation in binary search tree
solution : recursive
Operations on data structures ⽆⾮ Traverse + visit , Traversal is 「 look for 」, The interview is 「 Change 」. Specific to this question , insert ⼊⼀ Number , Is to find the plug first ⼊ Location , Then enter ⾏ insert ⼊ operation .
On ⼀ A question , We summarized BST Traversal framework in , Namely 「 look for 」 The problem of . Direct framing , add 「 Change 」 The operation of .⼀ Dan involves 「 Change 」, The function is going to return TreeNode type , And call recursion ⽤ The return value of ⾏ receive .
class Solution:
def insertIntoBST(self, root: TreeNode, val: int) -> TreeNode:
if not root:
# Find the insertion location , Make changes
return TreeNode(val)
if root.val > val:
# Receive return value
root.left = self.insertIntoBST(root.left, val)
else:
# Receive return value
root.right = self.insertIntoBST(root.right, val)
return root
summary
- Experience the similarities and differences between the search process of binary search tree and ordinary binary tree .
- Experience the difference between insert and search .
边栏推荐
- Experience design details
- Appx代码签名指南
- 概率论公式
- 安装 torch 0.4.1
- Create applet from 0
- Depth analysis of compilation constants, classloader classes, and system class loaders
- 1200.Minimum Absolute Difference
- 海思3559万能平台搭建:RTSP实时播放的支持
- Principle of attention mechanism
- 24.(arcgis api for js篇)arcgis api for js点修改点编辑(SketchViewModel)
猜你喜欢
随机推荐
How to replace the backbone of the model
存储过程与函数(MySQL)
函数重入、函数重载、函数重写自己理解
Jerry's transmitter crashed after the receiver shut down [chapter]
我的勇敢对线之路--详细阐述,浏览器输入URL发生了什么
VHDL implementation of arbitrary size matrix multiplication
Optimization of application startup speed
【C语言】 题集 of Ⅸ
HMS core machine learning service creates a new "sound" state of simultaneous interpreting translation, and AI makes international exchanges smoother
HMS Core 机器学习服务打造同传翻译新“声”态,AI让国际交流更顺畅
Code quality management
22. (ArcGIS API for JS) ArcGIS API for JS Circle Collection (sketchviewmodel)
Mathematical induction and recursion
Shangsilicon Valley JVM Chapter 1 class loading subsystem
亚像素级角点检测Opencv-cornerSubPix
Cryptography series: detailed explanation of online certificate status protocol OCSP
cocos3——8.实现初学者指南
leetcode
【colmap】已知相机位姿情况下进行三维重建
Jerry's ble exiting Bluetooth mode card machine [chapter]