zoukankan      html  css  js  c++  java
  • 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)
            
    

      

  • 相关阅读:
    Java 处理cookie的方法
    HTML5的新标签-整体布局
    Git学习文档——文件状态git status
    Css中路径data用法
    python2
    hangfire
    Nginx系列~Nginx服务启动不了
    git形成本地仓库并从远处url拉取
    orcal和sql server中的字符串查找函数
    Eclipse 修改项目名称
  • 原文地址:https://www.cnblogs.com/bozhou/p/LintCode.html
Copyright © 2011-2022 走看看