万钰禄 level
获赞
0
粉丝
0
关注
0
看过 TA
2
西南大学
2025
Java
IP属地:重庆
暂未填写个人简介
私信
关注
03-29 14:06
西南大学 Java
/*————danny的常规方法,注意和回文链表进行区别,这个可以直接用两个现有的链表进行构造,因为原有链表不需要保留;                                            而前面的回文链表需要保留原来链表进行对比,所以不能像这题这样操作。*//** * Definition for singly-linked list. * struct ListNode { *     int val; *     struct ListNode *next; * }; */struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2) {    //(1)如果l1/l2有空的,则直接将另一个链表给返回    if(!l1){        return l2;    }    if(!l2){        return l1;    }    //(2)创建一个头结点并初始化    struct ListNode *head = (struct ListNode*)malloc(sizeof(struct ListNode));    head->next = NULL;  // 防止脏数据    struct ListNode* s = head;  // 使用s进行操作,而不是头结点head     //(3)对以head为头结点的链表进行构造(只是对地址操作,并不是创建大量结点)    while(l1 && l2){        if(l1->val < l2->val){            s->next = l1;            l1 = l1->next;        }        else{            s->next = l2;            l2 = l2->next;        }        s = s->next;  // 因为x最开始指向的是头结点,每次将下一个位置安排好后,将t移到新链表的最后一个位置    }    //(4)如果都有数据的区间结束,l1还有元素,则t后面直接接剩余的值    if(l1){        s->next = l1;    }    else if(l2){        s->next = l2;    }    //(5)将构造好的链表的第一个具体结点返回    return head->next;  }
0 点赞 评论 收藏
分享
03-29 14:05
西南大学 Java
//#include <string.h> “strlen”需要用到这个头文件//#include <stdlib.h> “malloc”需要用到这个头文件//char arr[201]; //函数内声明的char arr[201]无法被返回//题干已经说明先放word1再放word2了char* mergeAlternately(char* word1, char* word2) {    int l1, l2, i=0, j=0;     l1 = strlen(word1);  // 只有字符数组才能用stelen    l2 = strlen(word2);    char *arr = (char*)malloc(sizeof(char)*(l1+l2+1));  // arr只是分配了空间,没有初始化,不能用strlen,至少要有\0    for(i; i<l1 || i<l2; i++){  // i是对应word1和word2的每一个位置的;j是用于构建arr的        if(i < l1){            arr[j++] = word1[i];        }        if(i < l2){            arr[j++] = word2[i];        }    }    arr[j] = '\0';  // 此时j指向最后元素的下一个位置    return arr;}
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客企业服务