题解 | #二叉搜索树的第k个结点#
二叉搜索树的第k个结点
http://www.nowcoder.com/practice/ef068f602dde4d28aab2b210e859150a
【剑指offer】二叉查找树的第K个结点(python)
- 二叉搜索树的中序(左中右)遍历结果就是升序序列,因为其左节点都小于根节点,右结点都大于根节点。
- 注意边界值,0<k<=length
# -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: # 返回对应节点TreeNode arr = [] def KthNode(self, pRoot, k): # write code here if not pRoot: return None self.arr = [] self.midTraversal(pRoot) length = len(self.arr) if k <= length and k > 0: return self.arr[k-1] else: return None def midTraversal(self,root): if not root: return None self.midTraversal(root.left) self.arr.append(root) self.midTraversal(root.right)