看了评论区大佬方法,pre要加引用或者干脆设置为一个成员变量,因为回溯后还要用到pre
class Solution {
public:
void backtra(TreeNode* cur,TreeNode*& pre){
if(!cur) return;
backtra(cur->left, pre);
cur->left=pre;
if(pre) pre->right=cur;
pre=cur;
backtra(cur->right,pre);
}
TreeNode* Convert(TreeNode* pRootOfTree) {
if(!pRootOfTree) return pRootOfTree;
TreeNode* pre =NULL;
backtra(pRootOfTree, pre);
TreeNode* ans =pRootOfTree;
while(ans->left){
ans=ans->left;
}
return ans;
}
};
京公网安备 11010502036488号