class Solution {
public:
void flatten(TreeNode* root) {
func(root);
}
TreeNode* func(TreeNode* root)
{
if(root == NULL) return root;
TreeNode* right = root->right;
if(root->left==NULL && root->right==NULL)
return root;
if(root->left != NULL){
TreeNode* left_end = func(root->left);
left_end->right = root->right;
root->right = root->left;
root->left = NULL;
if(right == NULL)
right = root->right;
}
TreeNode *right_end = func(right);
return right_end;
}
};
递归函数func,返回以root为根的子树的构建的链表的最后一个结点,反复递归调用。
LeetCode 114. Flatten Binary Tree to Linked List
最新推荐文章于 2022-09-06 16:04:14 发布