当前位置: 首页 > article >正文

力扣129. 求根节点到叶节点数字之和

递归

  • 思路:
    • 递归子问题:
      • sum = 左子树值 + 右子树值
      • 子树值 = 上一级值 * 10 + 当前节点值
        • int sum = prevSum * 10 + root->val;
          calcSum(root->left, sum) + calcSum(root->right, sum);

    • 终止条件:
      • 如果节点为 nullptr,则值为 0 ;
      • 如果左子节点且右子节点为 nullptr,则返回数字和;
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    int sumNumbers(TreeNode* root) {
        return calcSum(root, 0);
    }

private:
    int calcSum(TreeNode* root, int prevSum) {
        if (root == nullptr) {
            return 0;
        }

        int sum = prevSum * 10 + root->val;
        if (root->left == nullptr && root->right == nullptr) {
            return sum;
        } else {
            return calcSum(root->left, sum) + calcSum(root->right, sum);
        }
    }
};


http://www.kler.cn/a/154190.html

相关文章:

  • C++ | Leetcode C++题解之第565题数组嵌套
  • uniapp 微信小程序地图标记点、聚合点/根据缩放重合点,根据缩放登记显示气泡marik标点
  • SpringBoot源码解析(四):解析应用参数args
  • 使用nossl模式连接MySQL数据库详解
  • Spring Events在大型项目中的最佳实践
  • uniapp luch-request 使用教程+响应对象创建
  • Git自动化利器:使用Node.js脚本定制化提交消息处理
  • 电大搜题微信公众号详解,助力学习者轻松考试
  • web:very_easy_sql(sql、ssrf、gopher协议sql注入)
  • zookeeper集群+kaafka集群
  • 二叉树遍历及应用
  • 大厂面试整理
  • Linux操作系统 2.Linux基础命令
  • Python字典类型
  • MyBatis的创建,简单易懂的一篇blog
  • LeetCode [中等]98. 验证二叉搜索树
  • uniapp-从后台返回的一串地址信息上,提取省市区进行赋值
  • 数据结构--堆排序
  • 【开源】基于JAVA语言的考研专业课程管理系统
  • YOLOv8界面-目标检测+语义分割+追踪+姿态识别(姿态估计)+界面DeepSort/ByteTrack-PyQt-GUI
  • 【开源】基于Vue+SpringBoot的音乐平台
  • windows配置go调用python的编译环境
  • 【开箱即用】前后端同时开源!周末和AI用Go语言共同研发了一款笔记留言小程序!
  • Web3.0时代:区块链DAPP将如何颠覆传统模式
  • 深度学习:什么是知识蒸馏(Knowledge Distillation)
  • 前端面试灵魂提问(1)