原題描述:
在二叉樹中尋找值最大的節點並返回。
樣例
給出如下一棵二叉樹:
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)