Given a binary tree, flatten it to a linked list in-place.
For example,
Given
1 / 2 5 / \ 3 4 6
The flattened tree should look like:
1 2 3 4 5 6 代码:
class Solution{ public: void flatten(TreeNode *root) { if(root==NULL) return; TreeNode* p=root->left; if(p==NULL){ flatten(root->right); return; } while(p->right!=NULL) p=p->right; TreeNode* temp=root->right; root->right=root->left; root->left=NULL;//一定不要忘记左子树要赋空 p->right=temp; flatten(root->right); return; } };
这种DFS画图最好理解了,下图是我的解题过程:
时间: 2024-12-23 21:34:50