zoukankan      html  css  js  c++  java
  • C语言递归之求根到叶节点数字之和

    题目描述

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

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

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

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

    示例

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

    题目要求

     1 /**
     2  * Definition for a binary tree node.
     3  * struct TreeNode {
     4  *     int val;
     5  *     struct TreeNode *left;
     6  *     struct TreeNode *right;
     7  * };
     8  */
     9 
    10 int sumNumbers(struct TreeNode* root){
    11 
    12 }

    题解

     1 /**
     2  * Definition for a binary tree node.
     3  * struct TreeNode {
     4  *     int val;
     5  *     struct TreeNode *left;
     6  *     struct TreeNode *right;
     7  * };
     8  */
     9 
    10 int work(struct TreeNode* r,int count){
    11     count=count*10+r->val;
    12     if(r->left==NULL&&r->right==NULL)return count;
    13     if(r->left==NULL)return work(r->right,count);
    14     if(r->right==NULL)return work(r->left,count);
    15     return work(r->left,count)+work(r->right,count);
    16 }
    17 
    18 int sumNumbers(struct TreeNode* root){
    19     if(root==NULL)return 0;
    20     return work(root,0);
    21 }

    递归传输的数据包括二叉树和数字和,因此定义一递归函数。

    当前节点累积数字等于左子节点和右子节点累计数字的和。

    返回条件是左子节点和右子节点都为空时。

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/sum-root-to-leaf-numbers
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

  • 相关阅读:
    SpringBoot配置文件
    SpringBoot基础开发流程
    day06-01数字类型、数字类型的转换
    特有的循环结构(for-else、while-else)——Python篇
    分支、循环——Python基础篇
    循环关键字——Python篇
    另类三目运算符——Python篇
    原码、反码以及补码
    Python运算符
    Python变量
  • 原文地址:https://www.cnblogs.com/shi-champion/p/11678605.html
Copyright © 2011-2022 走看看