首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【python刷题】二叉搜索树-相关题目

【python刷题】二叉搜索树-相关题目

作者头像
西西嘛呦
发布2021-01-21 05:50:23
发布2021-01-21 05:50:23
3900
举报

二叉搜索树的重要性质:中序遍历的结果是升序排列。

leetcode 230 二叉搜索树中第K小的元素

代码语言:javascript
复制
class Solution:
    def __init__(self):
        self.res = 0
        self.rank = 0

    def kthSmallest(self, root: TreeNode, k: int) -> int:
        self.traverse(root, k)
        return self.res
    
    def traverse(self, root , k):
        if not root:
            return 
        self.traverse(root.left, k)
        self.rank = self.rank + 1
        if self.rank == k:
            self.res = root.val
            return 
        self.traverse(root.right, k)

leetcode 538 把二叉搜索树转换为累加树

代码语言:javascript
复制
class Solution:
    def __init__(self):
        self.s = 0
    def convertBST(self, root: TreeNode) -> TreeNode:
        self.traverse(root)
        return root
    def traverse(self, root):
        if not root:
            return 
        self.convertBST(root.right)
        self.s = self.s + root.val
        root.val = self.s
        self.convertBST(root.left)

606. 根据二叉树创建字符串

代码语言:javascript
复制
class Solution:
    def tree2str(self, t: TreeNode) -> str:
        def traverse(root):
            if not root:
                return ""
            if not root.left and not root.right:
                return str(root.val) + ""
            if not root.right:
                return str(root.val) + "(" + traverse(root.left) + ")"
            return str(root.val) + "(" + traverse(root.left) + ")(" + traverse(root.right) + ")
        return traverse(t)

530. 二叉搜索树的最小绝对差

代码语言:javascript
复制
class Solution:
    def __init__(self):
        self.res = float("inf")
        self.pre = -1
    def getMinimumDifference(self, root: TreeNode) -> int:
        def traverse(root):
            if not root:
                return 0
            traverse(root.left)
            if self.pre != -1 and abs(root.val - self.pre) < self.res:
                self.res = abs(root.val - self.pre)
            self.pre = root.val
            traverse(root.right)
        traverse(root)
        return self.res
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-01-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • leetcode 230 二叉搜索树中第K小的元素
  • leetcode 538 把二叉搜索树转换为累加树
  • 606. 根据二叉树创建字符串
  • 530. 二叉搜索树的最小绝对差
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档