标签:
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画图最好理解了,下图是我的解题过程:
Flatten Binary Tree to Linked List (DFS)
标签:
原文地址:http://www.cnblogs.com/fightformylife/p/4244975.html