zoukankan      html  css  js  c++  java
  • Leetcode练习(Python):二分查找类:第230题:二叉搜索树中第K小的元素:给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。 说明: 你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。

    题目:

    二叉搜索树中第K小的元素:给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。  说明: 你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。  

    思路:

    二叉搜索树具有良好的性质,一个节点左边的数小于该节点,右边的数大于该节点,因此想到了使用中序排列,很方便就得到了结果。

    暂时还没有想到使用二分查找的思路,之后做补充。

    程序:

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution:
        def kthSmallest(self, root: TreeNode, k: int) -> int:
            auxiliary = []
            def inorder(root, auxiliary):
                if root == None:
                    return auxiliary
                inorder(root.left, auxiliary)
                auxiliary.append(root.val)
                inorder(root.right, auxiliary)
            inorder(root, auxiliary)
            result = auxiliary[k - 1]
            return result
    

      

  • 相关阅读:
    Ubuntu中的vsftpd配置
    Ubuntu学习-增加更新源及安装软件及卸载软件
    Ubuntu16.04下安装sublime text3
    需要读的书
    同一机器 部署 两个 jboss
    log4j 总结 精华
    oracle 笔记
    oracle 用户 多个表空间
    json
    json 基础
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12875533.html
Copyright © 2011-2022 走看看