• 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)
            
    

      

  • 相关阅读:
    表、栈和队列基础
    学习记录随机算法
    202202linux基础知识点
    js去重的几种方法
    Gjc_02转WGS84坐标系(高精度)
    拖拽地图/点坐标定位(高德地图)
    利用canvas进行的图片压缩
    uniapp学习笔记(创建调试打包各个端口版本)
    uniapp页面栈
    svg路径
  • 原文地址:https://www.cnblogs.com/bozhou/p/LintCode.html
Copyright © 2020-2023  润新知