zoukankan      html  css  js  c++  java
  • LeetCode: Sum Root to Leaf Numbers [129]

    【题目】

    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.


    【题意】

        给定一棵二叉树,节点值仅仅可能是[0-9]区间上的值,每一条从根到叶子的节点都能够看成一个整数。现要求把全部路径表示的整数相加,返回和


    【思路】

        DFS,找到左右的路径,实数化每条路径上组合数。将全部的路径上得到的整数求和。
        
        这里2有个问题:
        1. 假设某条路径太长,组合数已经超出了int的上界怎么办
        2. 假设终于的和超出了int的上界怎么办
        
        题目没有进一步的说明,我们默认所给的測试用例都保证不会越界。

        


    【代码】

    /**
     * Definition for binary tree
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        
        void dfs(int&result, int num, TreeNode*node){
            //result表示全部路径的组合
            //num表示根到node的父节点的组合数
            if(node){
                num=10*num+node->val;   //计算从根到当前节点的组合数
                if(node->left==NULL && node->right==NULL){
                    result+=num;    //已经找到一个条路径的组合数,累加到result上
                    return;
                }
                
                if(node->left) dfs(result, num, node->left);
                if(node->right) dfs(result, num, node->right);
            }
        }
    
    
        int sumNumbers(TreeNode *root){
            if(root==NULL)return NULL;
            int result=0;
            int num=0;
            dfs(result, num, root);
            return result;
        }
    };


  • 相关阅读:
    搭建vue项目脚手架
    vue项目中的iconfont图标下载及配置
    vue-awesome-swiper 轮播图的使用
    IDEA自动生成Mapper和实体文件
    云服务器通过IP如何访问项目
    社保,步入社会的第一步
    Memcached安装与启动
    IDEA提示非法字符,你不懂的UTF-8
    MyEclipse导入eclipse的web项目,将WebRoot切换为WebContent
    Myeclipse2017删除tomcat后,项目全部报错的解决办法
  • 原文地址:https://www.cnblogs.com/blfshiye/p/5135445.html
Copyright © 2011-2022 走看看