【剑指Offer】合并两个排序的链表
发布日期:2022-02-10 08:55:12
浏览次数:31
分类:技术文章
本文共 2230 字,大约阅读时间需要 7 分钟。
题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
思路
很基础的两个指针分别指向两个链表,然后比大小的过程,循环解决。代码写的很细致,主要考虑鲁棒性问题。
代码
/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { ListNode* p1 = pHead1; ListNode* p2 = pHead2; ListNode* Head = NULL; ListNode* pLast = NULL; if(pHead1 == NULL && pHead2 == NULL){ return NULL; }else if(pHead1 != NULL && pHead2 == NULL){ return pHead1; }else if(pHead1 == NULL && pHead2 != NULL){ return pHead2; } if(p1->val < p2->val){ Head = new ListNode(p1->val); pLast = Head; p1=p1->next; }else if(p1->val > p2->val){ Head = new ListNode(p2->val); pLast = Head; p2=p2->next; }else if(p1->val == p2->val){ Head = new ListNode(p1->val); pLast = Head; pLast->next = new ListNode(p2->val); pLast=pLast->next; p1=p1->next; p2=p2->next; } while(p1 != NULL && p2!= NULL){ if(p1->val < p2->val){ pLast->next = new ListNode(p1->val); pLast = pLast->next; p1=p1->next; }else if(p1->val > p2->val){ pLast->next = new ListNode(p2->val); pLast = pLast->next; p2=p2->next; }else if(p1->val == p2->val){ pLast->next = new ListNode(p1->val); pLast=pLast->next; pLast->next = new ListNode(p2->val); pLast=pLast->next; p1=p1->next; p2=p2->next; } } if(p2 != NULL){ while(p2!= NULL){ pLast->next = new ListNode(p2->val); pLast = pLast->next; p2=p2->next; } }else if(p1 != NULL){ while(p1!= NULL){ pLast->next = new ListNode(p1->val); pLast = pLast->next; p1=p1->next; } } return Head; }};
转载地址:https://blog.csdn.net/hanmin822/article/details/105526748 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年03月21日 11时15分44秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
什么是二分查找、插值查找、斐波那契查找和索引查找?
2019-04-25
什么是二叉查找树,有什么优势?
2019-04-25
教你玩转二叉查找树的结点插入和删除操作
2019-04-25
下次再让你讲平衡二叉树,可别说不会了
2019-04-25
什么是B-树、B树、B+树、B*树?
2019-04-25
B树结点的插入删除操作
2019-04-25
String s=new String(“abc“)创建了几个对象?
2019-04-25
【干货】Linux 网卡绑定的相关知识和技巧
2019-04-25
学习笔记2021-01-13
2019-04-25
soul源码学习-20210114
2019-04-25
编程语言介绍
2019-04-25
JVM 基础知识
2019-04-25
Java字节码(一)
2019-04-25
JVM 类加载器
2019-04-25
java内存模型(一)
2019-04-25
java内存模型(二)
2019-04-25
虚拟机ping不通主机,但是主机可以ping通虚拟机
2019-04-25
idea中创建maven文件时,maven路径是自己设置的
2019-04-25