LeetCode 1022. Sum of Root To Leaf Binary Numbers

🔗 https://leetcode.com/problems/sum-of-root-to-leaf-binary-numbers

题目

  • 给一个只有 0 和 1 的二叉树
  • 从 root 到 leaf 的 path 组成一个二进制数
  • 返回这棵树的所有路径和

思路

  • dfs 遍历,记录 path 的二进制数
  • 匿名函数减少参数的传递,代码很好写!

代码

cpp 复制代码
/**
 * 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 sumRootToLeaf(TreeNode* root) {
        int sum = 0;

        auto dfs = [&](this auto&& self, TreeNode* node, int presum) -> void{
            if (node->right == nullptr && node->left == nullptr) {
                sum = sum + presum * 2 + node->val;
                return;
            }
            if (node->right) self(node->right, presum * 2 + node->val);
            if (node->left) self(node->left, presum * 2 + node->val);
        };
        dfs(root, 0);
        return sum;
        
    }
};
相关推荐
NAGNIP2 小时前
一文搞懂神经元模型是什么!
人工智能·算法
董董灿是个攻城狮2 小时前
AI 视觉连载6:传统 CV 之高斯滤波
算法
踩坑记录3 小时前
leetcode hot100 35. 搜索插入位置 medium 二分查找
leetcode
散峰而望4 小时前
C++ 启程:从历史到实战,揭开命名空间的神秘面纱
c语言·开发语言·数据结构·c++·算法·github·visual studio
Ethan Hunt丶5 小时前
MSVTNet: 基于多尺度视觉Transformer的运动想象EEG分类模型
人工智能·深度学习·算法·transformer·脑机接口
仟濹5 小时前
【算法打卡day10(2026-02-24 周二)复习算法:DFS BFS 并查集】
算法·深度优先·图论·dfs·bfs·广度优先·宽度优先
-海绵东东-5 小时前
哈希表······················
算法·leetcode·散列表
LuDvei6 小时前
LINUX文件操作函数
java·linux·算法