leetcode 114:二叉树展开为链表

二叉树的题,使用递归的方式

TreeNode *last(TreeNode*root){
    while(root->right!=NULL){
        root=root->right;
    }
        return root;

}

TreeNode *fla(TreeNode *root){
    if(root==NULL)
        return NULL;
    if(root->left==NULL&&root->right==NULL)
        return root;
    else if(root->left!=NULL&&root->right!=NULL){
        last(fla(root->left))->right=fla(root->right);
        root->right=NULL;
        root->right=root->left;
        root->left=NULL;
    }
    else if(root->left!=NULL&&root->right==NULL){
        root->right=fla(root->left);
        root->left=NULL;
    }
    else if(root->left==NULL&&root->right!=NULL){
        root->right=fla(root->right);
    }
    return root;
}


void flatten(TreeNode *root) {
      fla(root);
}

 

相关文章:

  • 2021-12-05
  • 2021-10-27
  • 2021-09-29
  • 2021-07-01
  • 2021-07-21
  • 2021-11-15
  • 2021-05-28
猜你喜欢
  • 2021-05-01
  • 2021-11-14
  • 2022-12-23
  • 2022-12-23
  • 2021-12-29
  • 2021-06-24
相关资源
相似解决方案