1. 程式人生 > >劍指Offer-54 二叉搜尋樹的第k個結點

劍指Offer-54 二叉搜尋樹的第k個結點

題目:

給定一棵二叉搜尋樹,請找出其中的第k小的結點。
你可以假設樹和k都存在,並且1≤k≤樹的總結點數。
樣例
輸入:root = [2, 1, 3, null, null, null, null] ,k = 3
2
/
1 3
輸出:3

解答:

class Solution():
    def kthNode(self, root, k):
        """
        :type root: TreeNode
        :type k: int
        :rtype: TreeNode
        """
        if k <=
0: return self.count = 0 self.k = k self.kth = None self.iterate(root) return self.kth def iterate(self, root): if not root: return else: if root.left: self.iterate(root.left) self.
count += 1 if self.count == self.k: self.kth = root if root.right: self.iterate(root.right)