題目描述:
給定一棵二叉搜尋樹,請找出其中的第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
def kthnode(self, proot, k):
# 二叉搜尋樹的中序遍歷是有序的,左根右,從小到大
global result
result=
self.midnode(proot)
if k<=0 or len(result)return none
else:
return result[k-1]
def midnode(self,root):
if not root:
return none
self.midnode(root.left)
self.midnode(root.right)
二叉搜尋樹第k個結點
題目描述 給定一顆二叉搜尋樹,請找出其中的第k大的結點。例如,5 3 7 2 4 6 8 中,按結點數值大小順序第三個結點的值為4。這個題目考慮到可以用中序遍歷求解,因為中序遍歷是搜尋二叉樹的從大到小的順序,對二叉樹進行中序遍歷,每次經過結點k值減一,一直到k值等於1,對應的結點就是要尋找的點,這個...
刷題 二叉搜尋樹的第k個結點
給定一顆二叉搜尋樹,請找出其中的第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...
二叉搜尋樹的第k個結點
二叉搜尋樹的第k個結點 題目描述 給定一顆二叉搜尋樹,請找出其中的第k大的結點。例如,5 3 7 2 4 6 8 中,按結點數值大小順序第三個結點的值為4。思路 二叉搜尋樹為關鍵字排序 左子樹 根 右子樹 二叉樹的中序遍歷的訪問順序為 左子樹 根 右子樹 故找出二叉搜尋樹中第k大的節點實質為找出中序...