亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python實現查找二叉搜索樹第k大的節點功能示例

發布時間:2020-10-25 23:28:36 來源:腳本之家 閱讀:151 作者:hustfc 欄目:開發技術

本文實例講述了Python實現查找二叉搜索樹第k大的節點功能。分享給大家供大家參考,具體如下:

題目描述

給定一個二叉搜索樹,找出其中第k大的節點

Python實現查找二叉搜索樹第k大的節點功能示例

就是一個中序遍歷的過程,不需要額外的數組,便利到節點之后,k減一就行。

代碼1

class TreeNode:
  def __init__(self, x):
    self.val = x
    self.left = None
    self.right = None
class Solution:
  def __init__(self):
    self.k = 0
  def recursionKthNode(self, Root):
    result = None
    if result == None and Root.left:
      result = self.recursionKthNode(Root.left)
    if result == None:
      if self.k == 1:
        return Root
      self.k -= 1
    if result == None and Root.right:
      result = self.recursionKthNode(Root.right)
    return result
  def KthNode(self, Root, k):
    if Root == None:
      return None
    self.k = k
    return self.recursionKthNode(Root)
Root = TreeNode(5)
Root.left = TreeNode(3)
Root.left.left = TreeNode(2)
Root.left.right = TreeNode(4)
Root.right = TreeNode(7)
Root.right.left = TreeNode(6)
Root.right.right = TreeNode(8)
print(Solution().KthNode(Root,3).val)

output : 4

代碼2

class TreeNode:
  def __init__(self, x):
    self.val = x
    self.left = None
    self.right = None
class Solution:
  def __init__(self):
    self.k = 0
  def InOrder(self, Root):
    ans = None
    if Root:
      if ans == None and Root.left:
        ans = self.InOrder(Root.left)  #往左遍歷
      if ans == None and self.k == 1:
        ans = Root           #遍歷到目標節點
      if ans == None and self.k != 1:   #沒有遍歷到目標節點,k--
        self.k -= 1
      if ans == None and Root.right:   #往右遍歷
        ans = self.InOrder(Root.right)
    return ans
  def KthNode(self, Root, k):
    if Root == None or k <= 0:
      return None
    self.k = k
    return self.InOrder(Root)

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python數據結構與算法教程》、《Python加密解密算法與技巧總結》、《Python編碼操作技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》

希望本文所述對大家Python程序設計有所幫助。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

婺源县| 汾阳市| 鲁山县| 德江县| 梁平县| 苏尼特右旗| 台北县| 乐业县| 门头沟区| 黔江区| 永州市| 康平县| 沈丘县| 武汉市| 根河市| 阜南县| 松滋市| 肇源县| 桂平市| 紫阳县| 陇西县| 大方县| 台山市| 郑州市| 齐齐哈尔市| 虎林市| 女性| 景洪市| 冷水江市| 荔浦县| 调兵山市| 临桂县| 霍林郭勒市| 永吉县| 洛扎县| 邹城市| 阿尔山市| 洛隆县| 信丰县| 江孜县| 土默特左旗|