题解 | #重建二叉树#

二叉搜索树的第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)
全部评论

相关推荐

06-26 15:33
青岛工学院 Java
积极的秋田犬要冲国企:他现在邀请我明天面试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务