
详细思路
前序遍历得到数组,对于数组内每一个节点,左子树为nullptr,右子树为下一个节点
精确定义
nodes前序遍历节点
class Solution { public: void flatten(TreeNode* root) { if(!root)return ; vector<TreeNode*>nodes; dfs(root,nodes); int n=nodes.size(); for(int i=0;i<n-1;i++){ nodes[i]->left=nullptr; nodes[i]->right=nodes[i+1]; } nodes[n-1]->left=nullptr,nodes[n-1]->right=nullptr; return; } void dfs(TreeNode*root,vector<TreeNode*>&nodes){ if(!root)return ; nodes.push_back(root); dfs(root->left,nodes); dfs(root->right,nodes); } };
浙公网安备 33010602011771号