首页 > 编程语言 >21天【代码随想录算法训练营34期】第六章 二叉树part08 (● 235. 二叉搜索树的最近公共祖先 ● 701.二叉搜索树中的插入操作 ● 450.删除二叉搜索树中的节点)

21天【代码随想录算法训练营34期】第六章 二叉树part08 (● 235. 二叉搜索树的最近公共祖先 ● 701.二叉搜索树中的插入操作 ● 450.删除二叉搜索树中的节点)

时间:2024-04-10 13:55:17浏览次数:30  
标签:None right val root self 二叉 搜索 树中 left

235. 二叉搜索树的最近公共祖先
因为是搜索二叉树,所以只要值在q和p之间,那么就是lowest common ancestor

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode':
        if root is None:
            return None
        if root.val < p.val and root.val < q.val:
            return self.lowestCommonAncestor(root.right, p, q)
        if root.val > p.val and root.val > q.val:
            return self.lowestCommonAncestor(root.left, p, q)
        return root

701.二叉搜索树中的插入操作

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def insertIntoBST(self, root: Optional[TreeNode], val: int) -> Optional[TreeNode]:
        if root is None:
            return TreeNode(val)
        elif root.val > val:
            root.left = self.insertIntoBST(root.left, val)
        elif root.val < val:
            root.right = self.insertIntoBST(root.right, val)
        return root

450.删除二叉搜索树中的节点
怎么删除一个根结点,将它的值和right subtree的最左叶子的值交换,然后删除最左叶子

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def deleteNode(self, root: Optional[TreeNode], key: int) -> Optional[TreeNode]:
        if root is None:
            return None
        if root.val == key:
            if root.right is None:
                return root.left
            cur = root.right
            while cur.left:
                cur = cur.left
            cur.val, root.val = root.val, cur.val
        root.left = self.deleteNode(root.left, key)
        root.right = self.deleteNode(root.right, key)
        return root

标签:None,right,val,root,self,二叉,搜索,树中,left
From: https://www.cnblogs.com/miramira/p/18125744

相关文章

  • 【2024】Onlyfans如何使用搜索功能?Onlyfans如何搜索博主?如何在OnlyFans搜索HongkongDo
     1.什么是OnlyfansOnlyFans是一种内容订阅服务平台,它成立于2016年。它允许内容创作者在平台上面分享自己的创作,如图片、视频等等,用户需要支付订阅费用才能查看创作者的内容。此外,用户还可以通过打赏的方式来让创作者为自己量身定制作品。由于其独特的付费机制,很多创作者都......
  • 【题解 | 二叉树】给定二叉树的后序遍历和中序遍历,求层序遍历结果
    树的遍历给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(≤......
  • EECS 493 艺人搜索
    课业5:艺人搜索EECS4932024年冬季发布时间:2024年3月17日到期时间:2024年4月7日晚上11:59提交说明●请将您的作品以zip文件的形式提交给Canvas,名为“a5_<your_uniqname>.zip”。○命名拉链时,请取下角括号。○Canvas完成的重命名(例如“-1”)是可以的。●这个zip文件应该......
  • 20天【代码随想录算法训练营34期】第六章 二叉树part07 ( ● 530.二叉搜索树的最小绝对
    530.二叉搜索树的最小绝对差#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val#self.left=left#self.right=rightclassSolution:deftraversal(self,......
  • 数据结构--二叉树
    1.树的概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。如果将他的图画出来的话很像一棵树。1.1名词概念根结点:没有父结点(前驱节点)的结点;如上方A就是根结点父结点或双亲结点:如果这个结点下方还有结点(孩子节点)那么称这个结点为下方结点......
  • Elastic学习之旅 (8) 深入词项和全文搜索
    大家好,我是Edison。上一篇:Elastic学习之旅(7)聚合分析相信很多童鞋和我一样,有点傻傻分不清Term查询和全文查询的区别,那么今天我们就来一起梳理一下。基于Term的查询Term(词项)是ES中表达语义的最小单位,搜索和利用统计语言模型进行自然语言处理都需要处理Term。ES中TermQuery......
  • 19天【代码随想录算法训练营34期】第六章 二叉树 part06(● 654.最大二叉树 ● 617.合
    654.最大二叉树#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val#self.left=left#self.right=rightclassSolution:defconstructMaximumBinaryTree(s......
  • 广度优先搜索 Breadth-First Search(BFS)
    问题引入​对于每一个问题,都会有相应的解,在之前的学习中求解的过程,都是以一条条线的形式产生可能解进行筛选验证是否正确。本章节我们来考虑另外一种思路,类似于洪水爆发,从一个源头开始逐渐蔓延开来,直到所有可达的区域都被洪水淹没,所以我们也把这种算法称之为洪泛法。洪泛法会......
  • SHOPEE虾皮API接口:高效获取搜索栏生成的商品结果列表
    一、什么是SHOPEE虾皮API接口?通过SHOPEE虾皮API接口,开发者能够与SHOPEE虾皮平台实现数据交互,获取商品信息、订单数据等,为电商卖家、数据分析师等提供强大的数据支持。二、SHOPEE虾皮API接口核心功能——获取搜索栏生成的商品结果列表我们的SHOPEE虾皮API接口的核心功能是获......
  • 二叉排序树(BST)
    定义二叉排序树是一种特殊的二叉树,其中左子树中的所有节点都小于根节点,右子树中的所有节点都大于根节点(如下图所示)。因此构造过程需要确保插入的元素能够按照这个规则被正确地插入到树中性质1、如果初始状态是一个空树,则插入每个元素的时间复杂度是O(logn),其中n是树中节......