首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >88 - 查找二叉搜索树的第k个节点

88 - 查找二叉搜索树的第k个节点

原创
作者头像
ruochen
修改2021-06-24 18:05:15
4030
修改2021-06-24 18:05:15
举报

给定一颗二叉搜索树,请找到第k个节点

'''
中序遍历

'''

class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None

class KNode:
    def KthNode(self, pRoot, k):
        global result
        result = []
        middle = self.midorder(pRoot)
        if k <= 0 or len(middle) < k:
            return None
        else:
            return middle[k - 1]
    
    def midorder(self, pRoot):
        if not pRoot:
            return []
        self.midorder(pRoot.left)
        result.append(pRoot)
        self.midorder(pRoot.right)
        return result
    
root = TreeNode(10)
left = TreeNode(6)
right = TreeNode(15)
root.left = left
root.right = right

left1 = TreeNode(11)
right1 = TreeNode(20)

right.left = left1
right.right = right1

print(KNode().KthNode(root, 4).val)
15

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 给定一颗二叉搜索树,请找到第k个节点
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档