剑指 Offer 54. 二叉搜索树的第k大节点
这个题告诉我在recusive的function里,你return任何value都是没啥用的,需要用数组才能够记录下来我们需要的值。这个题也很简单,最简单的就是使用倒叙进行inorder遍历就可以了,代码如下:
# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def kthLargest(self, root: TreeNode, k: int) -> int: self.time=0 ret=[] def inorder_inverse(root,k): if root==None: return 0 inorder_inverse(root.right,k) self.time+=1 if self.time==k: ret.append(root.val) inorder_inverse(root.left,k) inorder_inverse(root,k) return ret[0]