zoukankan      html  css  js  c++  java
  • 230. Kth Smallest Element in a BST

    题目来源:
     https://leetcode.com/problems/kth-smallest-element-in-a-bst/
    自我感觉难度/真实难度:
     
    题意:
     
    分析:
     
    自己的代码:
    class Solution:
        def kthSmallest(self, root: TreeNode, k: int) -> int:
            self.res=0
            self.k = k
            
            def inorder(node):
                global res
                if not node:
                    return
                inorder(node.left)
                self.k-=1
                if self.k==0:
                    self.res=node.val
                    return 
                inorder(node.right)
            inorder(root)
            
            return self.res
    代码效率/结果:
     
    优秀代码:
    def kthSmallest(self, root, k):
        self.k = k
        self.res = None
        self.helper(root)
        return self.res
    
    def helper(self, node):
        if not node:
            return
        self.helper(node.left)
        self.k -= 1
        if self.k == 0:
            self.res = node.val
            return
        self.helper(node.right)
    def kthSmallest(root, k):
        stack = []
        while root or stack:
            while root:
                stack.append(root)
                root = root.left
            root = stack.pop()
            k -= 1
            if k == 0:
                return root.val
            root = root.right

    https://leetcode.com/problems/kth-smallest-element-in-a-bst/discuss/63829/Python-Easy-Iterative-and-Recursive-Solution

    代码效率/结果:
     
    自己优化后的代码:
     
    反思改进策略:

    1.读题要仔细,认真看懂题目再写

    2.如何用递归、循环从小到大遍历一个搜索树

    3.函数的输入参数,只能在自己函数范围内使用

    函数内部在定义函数,可以使用 self.k=k,使得整个solution类都可以使用self.k

    写题时间时长:
  • 相关阅读:
    linux软件包安装yum
    linux软件包安装rpm
    使用OwnCloud建立属于自己私有的云存储网盘
    Linux 防火墙
    Linux docker
    llinux 权限2
    详列JDK中的设计模式(二)结构型
    详列JDK中的设计模式(一)创建型
    JavaWeb学习总结(一) JavaWeb基础与Tomcat服务器
    老生常谈-从输入url到页面展示到底发生了什么
  • 原文地址:https://www.cnblogs.com/captain-dl/p/10533802.html
Copyright © 2011-2022 走看看