
114.二叉树展开为链表,就是跑图上这个样例,本地没问题,平台报错??

代码如下,思路是正着先序遍历会丢失节点信息,所以倒着后序遍历:
class Solution {
public:
void flatten(TreeNode* root) {
TreeNode*last=nullptr; //用last表示上一个节点
function<void(TreeNode*)> dfs=[&](TreeNode* node){
if(!node)return;
dfs(node->right); //右
dfs(node->left); //左
node->right=last; //根
last=node;//如果注释掉这一行就不报错
};
dfs(root);
}
};