题解 | #重建二叉树#
二叉搜索树的第k个结点
http://www.nowcoder.com/practice/ef068f602dde4d28aab2b210e859150a
# -*- 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):
if pRoot == None or k <= 0:
return None
self.res = 0
self.count = 0
self.DFS(pRoot, k)
if self.count < k: #判断 K 是否超出二叉树所有数据的长度
return None
return self.res
def DFS(self, pRoot, k):
if self.count >= k or pRoot == None:
return None
self.DFS(pRoot.left, k)
self.count += 1
if self.count == k:
self.res = pRoot
self.DFS(pRoot.right, k) 