苏州集团网站设计企业,济南机场建设,聚美优品网站设计,南县网页定制算法题
路径总和
112. 路径总和 - 力扣#xff08;LeetCode#xff09;
class Solution {
public:bool hasPathSum(TreeNode* root, int targetSum) {if(!root)return 0;//节点为空返回0int sumroot-val;//记录当前节点的值int ntargetSum-sum;//距离目标值还差多少if…算法题
路径总和
112. 路径总和 - 力扣LeetCode
class Solution {
public:bool hasPathSum(TreeNode* root, int targetSum) {if(!root)return 0;//节点为空返回0int sumroot-val;//记录当前节点的值int ntargetSum-sum;//距离目标值还差多少if(!root-left!root-rightn0)return 1//该节点没有左子树也没有右子树并且等于目标值返回1bool lhasPathSum(root-left,n);//遍历左子树bool rhasPathSum(root-right,n);//遍历右子树return l||r; }
};
基础知识
什么是 C 中的常量表达式
常量表达式是在编译时期就能计算出结果的表达式他的值是一个常量不会改变。
const int a5;
const int ba10;
例如上述例子在编译时期就能确定b的值是什么。
int a5;
const int ba10
这个例子就不是常量表达式。因为我们只是给a一个初始变量值在后续代码的编写中还是可以对这个a进行重新赋值的。
有什么用途
可以用来定义数组大小
const int N1e310;
int a[N];
枚举类型初始化
enum Color {RED 1, GREEN RED * 2, BLUE GREEN 3};
模版参数的使用
templateint N
int power(int x) {int result 1;for (int i 0; i N; i) {result * x;}return result;
}
如何判断一个表达式是否是常量表达式
基本数据类型的字面量如整数、字符、布尔值等是常量表达式。在代码中直接出现的常量很明显是常量表达式。
在c11中采用关键字constexpr作为判断依据如果一个函数或者变量被声明为constexpr并且满足constexpr的要求如constexpr函数的函数体只能包含返回语句等简单操作constexpr变量必须用常量表达式初始化那么它就是常量表达式。 constexpr int sum(int x) {return x x;}constexpr int e sum(4);