llllmz

导航

面试题 17.12. BiNodec

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */


struct TreeNode* convertBiNode(struct TreeNode* root){
    if(!root) return NULL;
    if(!root->left &&  !root->right) return root;
    struct TreeNode* x =root->left;
    root->left=NULL;
    struct TreeNode* leftroot=convertBiNode(x);
    if(leftroot){
        struct TreeNode* temp=leftroot;
        while(temp->right) temp=temp->right;
        temp->right=root;
    }else{
        leftroot=root;
    }
    struct TreeNode* rightroot=convertBiNode(root->right);
    root->right=rightroot;
    return leftroot;
}

 

posted on 2024-03-20 17:05  神奇的萝卜丝  阅读(23)  评论(0)    收藏  举报