1、两个有序链表合并
在leetcode上遇到的题目,老生常谈题目,这里使用c++实现,数据结构书里有这种题的。我一直用的这种遍历比较,然后接入到第三个链表里这种方法。还有递归方法和遍历不创建新链表的方法,这里就不赘述了
定义结构体
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {
}//实现初始化
};
代码块
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
//保持代码健壮性
if(l1==NULL)
return l2;
if(l2==NULL)
return l1;
//新建链表3,存放
ListNode* l3=new ListNode(0);
ListNode* p=l3;
while (l1!= NULL&&l2!=NULL) {
if (l1->val<=l2->val)
{
p->next=l1;
l1=l1->next;
}
else
{
p->next=l2;
l2=l2->next;
}