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

(LeetCode 面试经典 150 题) 129. 求根节点到叶节点数字之和 (深度优先搜索dfs)

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

在这里插入图片描述
在这里插入图片描述
思路:深度优先搜索dfs,时间复杂度0(n)。

C++版本:

/*** 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 dfs(TreeNode * root,int u){if(root==nullptr) return 0;if(root->left==nullptr && root->right==nullptr) return u*10+root->val;int sum=0;return dfs(root->left,u*10+root->val)+dfs(root->right,u*10+root->val);}int sumNumbers(TreeNode* root) {return dfs(root,0);}
};

JAVA版本:

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {int dfs(TreeNode root,int u){if(root==null) return 0;if(root.left==null && root.right==null) return u*10+root.val;int sum=0;return dfs(root.left,u*10+root.val)+dfs(root.right,u*10+root.val);}public int sumNumbers(TreeNode root) {return dfs(root,0);}
}

GO版本:

/*** Definition for a binary tree node.* type TreeNode struct {*     Val int*     Left *TreeNode*     Right *TreeNode* }*/
func sumNumbers(root *TreeNode) int {return dfs(root,0)
}
func dfs(root *TreeNode,u int) int{if root==nil {return 0}if root.Left==nil &&root.Right==nil {return u*10+root.Val}return dfs(root.Left,u*10+root.Val)+dfs(root.Right,u*10+root.Val);
}
http://www.dtcms.com/a/342822.html

相关文章:

  • 麒麟系统播放图片 速度比较
  • 【Python代码】谷歌专利CSV处理函数
  • 【双极性ocl放大电路原理图】2022-11-11
  • 计算机网络:网络基础、TCP编程
  • Seaborn数据可视化实战:Seaborn基础与实践-数据可视化的艺术
  • 数据安全管理——解读银行保险机构数据安全管理办法【附全文阅读】
  • 哈希:最长连续序列
  • 如何根据团队技术能力选择最适合的PHP框架?
  • Python 标准库--python012
  • 机器学习集成算法与K-means聚类
  • Spring两个核心IoCDI(二)
  • 【信创系统】信创系统传输文件
  • 科普:Python 中颜色的格式: RGB 格式 v.s. RGBA 格式
  • Terraform vs Ansible:基础设施即代码(IaC)工具深度对比与实战指南
  • 哈尔滨服务器托管,如何实现高效稳定运行?
  • 泛型与反射
  • MySQL--MVCC
  • MPS MPQ2013AGQ-AEC1-Z MPS芯源汽车级 同步降压转换器IC 电源传感器IC
  • 【密码学】深入浅出栅栏密码:原理、流程与实现
  • Android:compose-Scaffold组件
  • 【CS创世SD NAND征文】存储芯片在工业电表中的应用与技术演进
  • 基于Python与Tkinter开发的微博多功能自动化助手
  • 构建包含IK插件(中文分词插件)的Elasticsearch镜像
  • 分治思想在系统分流削峰中的实践与Golang前沿实现
  • RK3568项目(十六)--linux驱动开发之块设备介绍
  • C++ 序列式容器深度解析:vector、string、deque 与 list
  • 虚幻基础:曲线
  • Go 并发编程-channel
  • Java的反射与枚举
  • 贪吃蛇游戏(纯HTML)