class Solution(object):
def kthNode(self, root, k):
"""
:type root: TreeNode
:type k: int
:rtype: TreeNode
"""
self.k=k
self.res=root
def mid(r):
if not r or self.k==0:
return
if r.left:
mid(r.left)
self.k-=1
if self.k==0:
self.res=r
if r.right:
mid(r.right)
mid(root)
return self.res
”“”if not r or self.k==0:”“” 可以改成 “”“if not r or self.k <= 0”“”,如果是在一次mid(r.left)中self.k变成0,那么在之后的mid(r.right)时self.k 会变成-1,并且会一直减下去直到跑完整个tree,当然,不影响答案正确性,效率是O(n)而不是O(k)了。