二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉排序树。
题目描述
给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。
思路:对二叉搜索树进行中序遍历,第k小的就是遍历的第k个结点。
# -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: # 返回对应节点TreeNode def KthNode(self, pRoot, k): # write code here if not pRoot or not k : return res = [] def midTraversal(node): if len(res)>=k or not node : return midTraversal(node.left) res.append(node) midTraversal(node.right) midTraversal(pRoot) if len(res)<k: return return res[k-1]