二叉树路径的问题大致可以分为两类:
1、自顶向下:
顾名思义,就是从某一个节点(不一定是根节点),从上向下寻找路径,到某一个节点(不一定是叶节点)结束

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
一般路径:
vector<vector<int>>res;
void dfs(TreeNode*root,vector<int>path)
{
if(!root) return; //根节点为空直接返回
path.push_back(root->val); //作出选择
if(!root->left && !root->right) //如果到叶节点
{
res.push_back(path);
return;
}
dfs(root->left,path); //继续递归
dfs(root->right,path);
}

# **给定和的路径:**
void dfs(TreeNode*root, int sum, vector<int> path)
{
if (!root)
return;
sum -= root->val;
path.push_back(root->val);
if (!root->left && !root->right && sum == 0)
{
res.push_back(path);
return;
}
dfs(root->left, sum, path);
dfs(root->right, sum, path);
}

2、非自顶向下:
就是从任意节点到任意节点的路径,不需要自顶向下

1
2
3
4
5
6
7
8
9
10
int res=0;
int maxPath(TreeNode *root) //以root为路径起始点的最长路径
{
if (!root)
return 0;
int left=maxPath(root->left);
int right=maxPath(root->right);
res = max(res, left + right + root->val); //更新全局变量
return max(left, right); //返回左右路径较长者
}
1
2
3
4
5
6
7
8
9
10
5.使用SQL语句 ALTER TABLE 修改 curriculum 表的“课程名称”列,使之为空。
6.使用SQL语句 ALTER TABLE修改grade 表的“分数”列,使其数据类型为decimal(5,2)。
7.使用SQL语句 ALTER TABLE为 student_info 表添加一个名为“备注”的数据列,其数据类型为VARCHAR(50)。
8.使用SQL语句创建数据库studb,并在此数据库下创建表stu,该表的结构与数据和studentdb数据库中的 student_info 表相同。
6
9.使用SQL语句删除stu表中学号为0004的记录。
10.使用SQL语句更新stud表中学号为0002的家庭住址为“滨江市新建路96号”
妻啭イ
11.删除 stud表的“备注”列。
12.删除 stud 表。
1
2
3
4
5
6
7
8
9
INSERT INTO stu (学号, 姓名, 性别, 出生日期, 家庭住址) VALUES
('0001', '张青平', '男', '2000-10-01', '衡阳市桃风路77号'),
('0002', '刘东阳', '男', '1998-12-09', '东阳市八一北路33号'),
('0003', '马晓夏', '女', '1995-05-12', '长岭县五一路763号'),
('0004', '钱忠理', '男', '1994-09-23', '滨海市洞庭大道279号'),
('0005', '孙海洋', '男', '1995-04-03', '长岛县解放路27号'),
('0006', '魏小斌', '男', '1997-11-10', '南京市红旗路113号'),
('0007', '肖月珍', '女', '1997-12-07', '东方南京路11号'),
('0008', '张玲珑', '女', '1997-12-24', '滨江市新建路97号');