这是一个典型的面试题。从网上查了很多代码,感觉部分写的不够严谨。今天做一个汇总。
思路:
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