码迷,mamicode.com
首页 > 编程语言 > 详细

剑指offer-二叉搜索树的第k个结点树-python

时间:2019-11-21 20:04:27      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:describe   bsp   des   odi   data   def   binary   self   所有结点   

二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树

题目描述

给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8)    中,按结点数值大小顺序第三小结点的值为4。
 
思路:对二叉搜索树进行中序遍历,第k小的就是遍历的第k个结点。
# -*- 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):
        # write code here
        if not pRoot or not k :
            return 
        res = []
        def midTraversal(node):
            if len(res)>=k or not node :
                return
            midTraversal(node.left)
            res.append(node)
            midTraversal(node.right)
        midTraversal(pRoot)
        if len(res)<k:
            return 
        return res[k-1]
        

 

 

剑指offer-二叉搜索树的第k个结点树-python

标签:describe   bsp   des   odi   data   def   binary   self   所有结点   

原文地址:https://www.cnblogs.com/ansang/p/11907770.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!