• leetcode刷题笔记一百二十九题 求根到叶子节点数字之和


    leetcode刷题笔记一百二十九题 求根到叶子节点数字之和

    源地址:129. 求根到叶子节点数字之和

    问题描述:

    给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。

    例如,从根到叶子节点路径 1->2->3 代表数字 123。

    计算从根到叶子节点生成的所有数字之和。

    说明: 叶子节点是指没有子节点的节点。

    示例 1:

    输入: [1,2,3]
    1
    /
    2 3
    输出: 25
    解释:
    从根到叶子节点路径 1->2 代表数字 12.
    从根到叶子节点路径 1->3 代表数字 13.
    因此,数字总和 = 12 + 13 = 25.
    示例 2:

    输入: [4,9,0,5,1]
    4
    /
    9 0
    /
    5 1
    输出: 1026
    解释:
    从根到叶子节点路径 4->9->5 代表数字 495.
    从根到叶子节点路径 4->9->1 代表数字 491.
    从根到叶子节点路径 4->0 代表数字 40.
    因此,数字总和 = 495 + 491 + 40 = 1026.

    //结合递归与DFS思想,再逐渐计算过程中更新根节点的值
    /**
     * Definition for a binary tree node.
     * class TreeNode(var _value: Int) {
     *   var value: Int = _value
     *   var left: TreeNode = null
     *   var right: TreeNode = null
     * }
     */
    import scala.collection.mutable 
    object Solution {
        def sumNumbers(root: TreeNode): Int = {
            val ans = dfs(root,  0)
            return ans
        }
    
        def dfs(root:TreeNode, tempValue: Int): Int ={
            if (root == null) return 0
            val temp = tempValue * 10 + root.value
            if (root.left == null && root.right == null) return temp
            return dfs(root.left, temp) + dfs(root.right, temp)
        }
    }
    
  • 相关阅读:
    个人项目实战
    准备
    结队项目-第一次作业
    第三次作业--团队展示
    软件工程实践第二次作业
    软件工程实践第一次作业
    circle
    calculator
    视频课程学习及学习计划
    1001.A+B Format (20)
  • 原文地址:https://www.cnblogs.com/ganshuoos/p/13512757.html
Copyright © 2020-2023  润新知