前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2-3 链表拼接 (20 分)

2-3 链表拼接 (20 分)

作者头像
韩旭051
发布2019-11-08 00:47:36
5850
发布2019-11-08 00:47:36
举报
文章被收录于专栏:刷题笔记

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://cloud.tencent.com/developer/article/1534999

2-3 链表拼接 (20 分)

本题要求实现一个合并两个有序链表的简单函数。链表结点定义如下:

代码语言:javascript
复制
struct ListNode {
    int data;
    struct ListNode *next;
};

函数接口定义:

代码语言:javascript
复制
struct ListNode *mergelists(struct ListNode *list1, struct ListNode *list2);

其中list1list2是用户传入的两个按data升序链接的链表的头指针;函数mergelists将两个链表合并成一个按data升序链接的链表,并返回结果链表的头指针。

裁判测试程序样例:

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>

struct ListNode {
    int data;
    struct ListNode *next;
};

struct ListNode *createlist(); /*裁判实现,细节不表*/
struct ListNode *mergelists(struct ListNode *list1, struct ListNode *list2);
void printlist( struct ListNode *head )
{
     struct ListNode *p = head;
     while (p) {
           printf("%d ", p->data);
           p = p->next;
     }
     printf("\n");
}

int main()
{
    struct ListNode  *list1, *list2;

    list1 = createlist();
    list2 = createlist();
    list1 = mergelists(list1, list2);
    printlist(list1);
	
    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

代码语言:javascript
复制
1 3 5 7 -1
2 4 6 -1

输出样例:

代码语言:javascript
复制
1 2 3 4 5 6 7 

这个有点套路了,这些题

代码语言:javascript
复制
struct ListNode *mergelists(struct ListNode *list1, struct ListNode *list2){
    struct ListNode  *list=(struct ListNode *)malloc(sizeof(struct ListNode ));
    struct ListNode  *l=list;
    while(list1!=NULL&&list2!=NULL){
        if(list1->data<list2->data){
            list->next=list1;
            list1=list1->next;
            list=list->next;
        }else{
            list->next=list2;
            list2=list2->next;
            list=list->next;
        }
    }
    while(list1!=NULL){
        list->next=list1;
        list1=list1->next;
        list=list->next;
    }while(list2!=NULL){
        list->next=list2;
        list2=list2->next;
        list=list->next;
    }return l->next;
}

我想把合并的代码

代码语言:txt
复制
    list->next=list2;
代码语言:txt
复制
     list2=list2->next;
代码语言:txt
复制
     list=list->next;

封装成一个函数,失败了~~·超时了,如果是编程题应该就可以,函数题只能再函数里面写东西,前面没有声明没法用~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/09/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2-3 链表拼接 (20 分)
    • 函数接口定义:
      • 裁判测试程序样例:
        • 输入样例:
          • 输出样例:
          • 这个有点套路了,这些题
          • 我想把合并的代码
          • 封装成一个函数,失败了~~·超时了,如果是编程题应该就可以,函数题只能再函数里面写东西,前面没有声明没法用~
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档