day17 二叉树的所有路径

void traversal(TreeNode* cur,

vector<int>& path,

vector<string>& result)

{

path.push_back(cur->val); // 中,中为什么写在这里,因为最后一个节点也要加入到path中

// 这才到了叶子节点

if (cur->left == NULL && cur->right == NULL) {

string sPath;

加入除最后一个元素外的数据

for (int i = 0; i < path.size() - 1; i++) {

sPath += to_string(pathi);

sPath += "->";

}

加入最后一个元素

sPath += to_string(pathpath.size() - 1);

result.push_back(sPath);

return;

}

if (cur->left) { // 左

traversal(cur->left, path, result);

path.pop_back(); // 回溯

}

if (cur->right) { // 右

traversal(cur->right, path, result);

path.pop_back(); // 回溯

}

}

vector<string> binaryTreePaths(TreeNode* root) {

vector<string> result;

vector<int> path;

if (root == NULL) return result;

traversal(root, path, result);

return result;

}

相关推荐
Bmob后端云23 分钟前
Bmob后端云实战|Python给备忘录接入AI摘要、文本润色功能
算法·github
小鱼干..34 分钟前
CTFHub技能树-ssrf-URL Bypass
算法
chushiyunen1 小时前
动态规划、贪心算法、分治法
算法·贪心算法·动态规划
hansang_IR1 小时前
【题解】P4456 [CQOI2018] 交错序列(数学递推)
c++·算法
青少儿编程课堂1 小时前
贪心算法进阶:区间调度与最少资源整合解析
c++·python·算法·贪心·信息学竞赛·区间调度
青山木1 小时前
Hot 100 --- 划分字母区间
java·数据结构·算法·leetcode·贪心算法
Sunsets_Red2 小时前
浅谈扫描线
c++·算法·编程·题解·洛谷·扫描线·信息学竞赛
a187927218312 小时前
【算法】双指针与滑动窗口(一):框架总纲——三类问题、一个原理与判决书
算法·leetcode·区间·双指针·滑动窗口·原理·算法讲解
shehuiyuelaiyuehao2 小时前
算法42,模拟算法,模拟z字形变换
算法
朝朝辞暮i2 小时前
C++第一课
开发语言·c++·算法