树遍历的变形

/**
 * 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* temp=convertBiNode(root->left);
    root->left=NULL;
    if(temp){
        struct TreeNode* a=temp;
        while(a && a->right) a=a->right;
        a->right=root;
    }
    struct TreeNode* t=convertBiNode(root->right);
    root->right=t;
    if(t) t->left=NULL;
    if(!temp) return root;
    return temp;
}

结果:

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。