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(path[i]);

sPath += "->";

}

加入最后一个元素

sPath += to_string(path[path.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;

}

相关推荐
小年糕是糕手1 分钟前
【C++】string类(二)
开发语言·数据结构·c++·程序人生·算法·leetcode·数字货币
Tisfy5 分钟前
LeetCode 3573.买卖股票的最佳时机 V:深度优先搜索
算法·leetcode·深度优先
TimelessHaze5 分钟前
算法复杂度分析与优化:从理论到实战
前端·javascript·算法
李玮豪Jimmy5 分钟前
Day42:单调栈part2(42.接雨水、84.柱状图中最大的矩形)
java·算法
yaoh.wang6 分钟前
力扣(LeetCode) 58: 最后一个单词的长度 - 解法思路
python·程序人生·算法·leetcode·面试·职场和发展·跳槽
LYFlied15 分钟前
【每日算法】LeetCode239. 滑动窗口最大值
数据结构·算法·leetcode·面试
XiaoHu020717 分钟前
C++ 数据结构关于二叉搜索树
数据结构·算法
CoovallyAIHub19 分钟前
下一代驾驶员监测系统如何工作?视觉AI接管驾驶舱
深度学习·算法·计算机视觉
C雨后彩虹20 分钟前
事件推送问题
java·数据结构·算法·华为·面试
夏鹏今天学习了吗21 分钟前
【LeetCode热题100(76/100)】划分字母区间
算法·leetcode·职场和发展