LintCode Python 入門級題目 二叉樹的最大節點


原題描述:

在二叉樹中尋找值最大的節點並返回。

樣例

給出如下一棵二叉樹:

     1
   /   \
 -5     2
 / \   /  \
0   3 -4  -5 

返回值為 3 的節點。

題目分析:

  LintCode已實現NodeTree類,傳入的參數實際為一個NodeTree類型的二叉樹,沒有找到方法接觸源碼,只能通過網頁一步一步調試,分析出結構:
其中,Node節點類擁有三個屬性
   left:當前節點的左節點
  right:當前節點的右節點
  val:當前節點的值
  通過實現Solution類中的maxNode方法獲取傳入的二叉樹中的最大節點對象,非節點的值!這點要非常注意,不然就會報int類型不包含val屬性~
class Solution:
    # @param {TreeNode} root the root of binary tree
    # @return {TreeNode} the max node
    maxNum = -9999
    node = None
    def maxNode(self, root):
        # Write your code here
        if root is None:
            return None
        self.max(root)
        return self.node
    
    def max(self,root): # 遞歸,循環二叉樹所有節點對象,將最大值的節點對象賦值給node
        if root is None:
            return None
        if root.val > self.maxNum:
            self.maxNum = root.val
            self.node = root
        self.max(root.left)
        self.max(root.right)
        

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM