zoukankan      html  css  js  c++  java
  • LeetCode: Sum Root to Leaf Numbers 解题报告

    Sum Root to Leaf Numbers

    Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number.

    An example is the root-to-leaf path 1->2->3 which represents the number 123.

    Find the total sum of all root-to-leaf numbers.

    For example,

        1
       /
      2   3
    The root-to-leaf path 1->2 represents the number 12.
    The root-to-leaf path 1->3 represents the number 13.

    Return the sum = 12 + 13 = 25.

    SOLUTION 1:

    使用递归完成。我们要做的是 把左右子树的path加起来。

    base case: root是叶子节点时,直接计算path。我们用pre保留上一层计算出来的数字的值。那么到了当前根节点应该就是

    把上一层的值*10再加上root的值。

     1 /**
     2  * Definition for binary tree
     3  * public class TreeNode {
     4  *     int val;
     5  *     TreeNode left;
     6  *     TreeNode right;
     7  *     TreeNode(int x) { val = x; }
     8  * }
     9  */
    10 public class Solution {
    11     public int sumNumbers(TreeNode root) {
    12         return dfs(root, 0);
    13     }
    14     
    15     public int dfs(TreeNode root, int pre) {
    16         if (root == null) {
    17             return 0;
    18         }
    19         
    20         int cur = pre * 10 + root.val;
    21         if (root.left == null && root.right == null) {
    22             return cur;
    23         }
    24         
    25         return dfs(root.left, cur) + dfs(root.right, cur);
    26     }
    27 }
    View Code

    GITHUB:

    https://github.com/yuzhangcmu/LeetCode_algorithm/blob/master/tree/SumNumbers_1208_2014.java

  • 相关阅读:
    nginx 域名跳转一例~~~(rewrite、proxy)
    军哥 LNMP 常见问题
    Zabbix安装
    PHP远程连接mysql
    Zend Studio 下载
    军哥LNMP优化
    网络流量监控分析工具 Ntopng 安装
    Linux VPS禁止某个IP访问
    DDoS deflate
    MySQL数据库的优化
  • 原文地址:https://www.cnblogs.com/yuzhangcmu/p/4172723.html
Copyright © 2011-2022 走看看