将两个有序链表合并成一个有序链表

来源:互联网 发布:义乌淘宝营销培训 编辑:程序博客网 时间:2024/06/05 00:48

题目:给定两个有序的链表,编写一个函数来合并这两个链表,并且返回一个新的有序的链表

分析:这两个链表已经有序,所以,只需要对着两个链表的元素依次进行比较即可,这是对两个链表操作的基本问题。

参考答案:(非常简单)

#include "stdafx.h"
#include<iostream>
using namespace std;

struct ListNode
{
int val;
ListNode *next;
ListNode(int x):val(x),next(NULL){}
};


ListNode *mergeTwoList(ListNode *l1,ListNode *l2)
{
ListNode *dummy =new ListNode(0);
ListNode *curr=dummy;
ListNode *newHead=NULL;


while(l1&&l2)
{
if(l1->val<=l2->val)
{
curr->next=l1;
l1=l1->next;
}else
{
curr->next=l2;
l2=l2->next;
}
curr=curr->next;
}
if(l1) curr->next=l1;
if(l2) curr->next=l2;


newHead=dummy->next;
delete dummy;
return newHead;
}


0 0
原创粉丝点击