文章
2
粉丝
0
获赞
2
访问
174
给定两个元素有序(从小到大)的链表,要求将两个链表合并成一个有序(从小到大)链表。
题目链接
http://www.noobdream.com/DreamJudge/Issue/page/1025/
#include <bits/stdc++.h>
using namespace std;
typedef struct node{
int val;
struct node *next;
}node;
node *append(node *head,int x){
//创一个新的node内存
node *newnode=(node *) malloc(sizeof(node));
newnode->val=x;
newnode->next=NULL;
//空链接/非空指针后移找最后一个
if(!head) return newnode;
node *p=head;
while(p->next) p=p->next;
p->next=newnode;
return head; //返回的是链表的head(已经在最后加上了一个node)
}
node *meg(node *l1,node *l2){
node dummy={0,NULL}; //设置一个哨兵
node *tail=&dummy; //以tail来制作一个新的链
while(l1 && l2){
if(l1->val < l2->val){
tail->next=l1;
l1=l1->next;
}
else{
tail->next=l2;
l2=l2->next;
}
tail=tail->next; // 移动 tail 指针
}
tail->next = (l1 ? l1 : l2); // 把剩余未遍历完的链表直接接上
return dummy.next;
}
void print_list(node *head){
if (!head) retu...
登录后发布评论
暂无评论,来抢沙发