漫漫人生的翠色

导航

我的第一篇随笔

这是我的第一篇随笔。

四十多年人生,不爱动笔是一个缺憾,

既往如烟散去,今日方觉人生的可贵。

申请博客是为了记录自己生活工作学习的点滴。

看一看人生是否有历久弥新的过去。。。

 

今日在牛客网做一道算法题,最简单的搜索二叉树。若干次提交才通过》

主要教训是在程序输入参数的正确性缺乏检验。

给定一棵二叉搜索树,请找出其中的第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
resultlist = []
def KthNode(self, pRoot, k):
if pRoot != None:#一号坑:输入二叉树不为空
if k <=0 : #二号坑:要考虑输入的数字的必须为正整数
return None
else:
self.resultlist=[]#三号坑:每次都要清空这个数组,避免叠加
self.inorder(pRoot)
if k>len(self.resultlist):#四号坑:要考虑输入数字大于二叉树节点的个数
return None
else:
return self.resultlist[k-1]#数组的下界为0

def inorder(self, pRoot):
if pRoot.left != None:
self.inorder(pRoot.left)
self.resultlist.append(pRoot)
if pRoot.right != None:
self.inorder(pRoot.right)

 

posted on 2020-08-31 15:40  漫漫人生的翠色  阅读(195)  评论(0)    收藏  举报