62. 二叉搜索树的第k个结点
题目描述
给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。
记录
二叉搜索树 + 中序遍历 :相当于排序了
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
# 返回对应节点TreeNode
def __init__(self):
self.list = []
def in_order(self, pRoot):
if not pRoot:
return None
if pRoot.left:
self.in_order(pRoot.left)
self.list.append(pRoot)
if pRoot.right:
self.in_order(pRoot.right)
def KthNode(self, pRoot, k):
self.in_order(pRoot)
if k <= 0 or k > len(self.list):
return None
return self.list[k - 1]