题目
给定一颗二叉搜索树,请找出其中的第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.count = 0
self.res_node = None
def find(self, pRoot, k):
if pRoot:
self.find(pRoot.left, k)
self.count += 1
if self.count == k:
self.res_node = pRoot
else:
self.find(pRoot.right, k)
def KthNode(self, pRoot, k):
# write code here
self.find(pRoot, k)
return self.res_node