这是一个典型的面试题。从网上查了很多代码,感觉部分写的不够严谨。今天做一个汇总。
思路:
1. 递归+回溯
2. 非递归的后序遍历(单栈版),每当遇到叶子结点,输出栈中元素即可。
以下代码都是基于思路一的代码。
版本一:引用vector
void LeavesPath(TreeNode* root, vector<int> &path){
//引用vector
if (root == NULL) return;
path.push_back(root->val);
if (root->left == NULL&&root->right == NULL){
for (int i = 0; i < path.size(); i++){

这是一篇关于解决面试题的文章,总结了三种不同的方法来找到二叉树中从根节点到所有叶子节点的路径。文章分别使用引用vector、数组+长度以及引用数组+引用长度来实现,并提供了相应的测试程序。作者强调理解递归本质和引用作用的重要性,并鼓励尝试将版本一转换为非递归形式。
最低0.47元/天 解锁文章
2777

被折叠的 条评论
为什么被折叠?



