当前位置:网站首页>[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 .
边栏推荐
- Opencv environment, and open a local PC camera.
- 大白话高并发(二)
- 美国空军研究实验室《探索深度学习系统的脆弱性和稳健性》2022年最新85页技术报告
- Significance and measures of source code confidentiality
- Vernacular high concurrency (2)
- VHDL implementation of arbitrary size matrix addition operation
- 源代码保密的意义和措施
- What about SSL certificate errors? Solutions to common SSL certificate errors in browsers
- 从0开始创建小程序
- Domcontentloaded and window onload
猜你喜欢

25. (ArcGIS API for JS) ArcGIS API for JS line modification line editing (sketchviewmodel)

qt-线程等01概念

21. (article ArcGIS API for JS) ArcGIS API for JS rectangular acquisition (sketchviewmodel)

How to replace the backbone of the model

Code quality management

线性表的查找

Make (convert) ICO Icon

When you go to the toilet, you can clearly explain the three Scheduling Strategies of scheduled tasks

RestClould ETL 社区版六月精选问答

图形化工具打包YOLOv5,生成可执行文件EXE
随机推荐
C# Task拓展方法
Create applet from 0
Delete data in SQL
Cryptography series: detailed explanation of online certificate status protocol OCSP
CMB's written test - quantitative relationship
Code quality management
U.S. Air Force Research Laboratory, "exploring the vulnerability and robustness of deep learning systems", the latest 85 page technical report in 2022
【达梦数据库】添加自动收集统计信息的任务
SQL中删除数据
Codeforces round 264 (Div. 2) C gargari and Bishop [violence]
Domcontentloaded and window onload
19. (ArcGIS API for JS) ArcGIS API for JS line acquisition (sketchviewmodel)
海思3559万能平台搭建:RTSP实时播放的支持
Numpy中排序操作partition,argpartition,sort,argsort
Vernacular high concurrency (2)
变量、流程控制与游标(MySQL)
About Estimation Statistics
23.(arcgis api for js篇)arcgis api for js椭圆采集(SketchViewModel)
22. (ArcGIS API for JS) ArcGIS API for JS Circle Collection (sketchviewmodel)
【colmap】已知相机位姿情况下进行三维重建