這是我的第一篇隨筆,
四十多年人生,不愛動筆是一個缺憾,
既往如煙散去,今日方覺人生的可貴,
申請博客是為了記錄自己生活作業學習的點滴,
看一看人生是否有歷久彌新的過去,,,
今日在牛客網做一道演算法題,最簡單的搜索二叉樹,若干次提交才通過》
主要教訓是在程式輸入引數的正確性缺乏檢驗,
給定一棵二叉搜索樹,請找出其中的第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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/75774.html
標籤:其他
上一篇:資訊系統專案管理 筆記
