博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【LeetCode】21. Merge Two Sorted Lists
阅读量:5138 次
发布时间:2019-06-13

本文共 2007 字,大约阅读时间需要 6 分钟。

Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.

题意:合并两个已排序的链表

题不难,但是有很多需要注意的细节,直接贴代码

1 /** 2  * Definition for singly-linked list. 3  * struct ListNode { 4  *     int val; 5  *     struct ListNode *next; 6  * }; 7  */ 8 struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2) { 9     struct ListNode *tmp,*p1,*p2;10     if(l1==NULL){11         tmp=l1;12         l1=l2;13         l2=tmp;14     }15     if(l1==NULL)16         return l1;17     p1=l1;18     p2=l2;19     while(l1!=NULL){20         if(l2!=NULL&&l1->val<=l2->val){21             while(l1->next!=NULL&&l1->next->val<=l2->val) 22                 l1=l1->next;23             tmp=l2;24             l2=l2->next;25             tmp->next=l1->next;26             l1->next=tmp;27             l1=l1->next;28         }29         else if(l2!=NULL&&l1->val>l2->val){30             tmp=l1;31             l1=l2;32             l2=tmp;33             p1=l1;34         }35         else if(l2==NULL)36             return p1;37     }38     return p1;39 }

 感觉写的好乱,重新写一遍:

1 /** 2  * Definition for singly-linked list. 3  * struct ListNode { 4  *     int val; 5  *     struct ListNode *next; 6  * }; 7  */ 8 struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2) { 9     struct ListNode *tmp,*p1;10     if(l1==NULL&&l2==NULL)11         return NULL;12     if(l1==NULL)13         return l2;14     if(l2==NULL)15         return l1;16     if(l1->val>l2->val){17         tmp=l1;18         l1=l2;19         l2=tmp;20     }21     p1=l1;22     while(l1!=NULL){23         if(l2!=NULL&&l1->val<=l2->val){24             while(l1->next!=NULL&&l1->next->val<=l2->val) 25                 l1=l1->next;26             tmp=l2;27             l2=l2->next;28             tmp->next=l1->next;29             l1->next=tmp;30         }31         else if(l2==NULL)32             return p1;33     }34     return p1;35 }

 

转载于:https://www.cnblogs.com/fcyworld/p/6215832.html

你可能感兴趣的文章
sql语法中的inner join on, left join on和 right join on的区别和详细使用方法(转载)...
查看>>
写互联网文案的新技巧
查看>>
org.hibernate.hql.internal.ast.QuerySyntaxException
查看>>
css3 导入字体
查看>>
python-requests
查看>>
Selenium-一组元素的定位
查看>>
oracle课堂随笔--第十四天
查看>>
设计一个应用或网站时的流程
查看>>
mac安装配置mysql
查看>>
BZOJ 1011: [HNOI2008]遥远的行星
查看>>
WCF-绑定模型(一)
查看>>
Codeforces-A. Shortest path of the king(简单bfs记录路径)
查看>>
POJ--3279(开关问题2个不同时间写的代码)
查看>>
Leetcode: Combination Sum IV && Summary: The Key to Solve DP
查看>>
2015年九月八日---js学习总结
查看>>
VB6多线程,关键段操作
查看>>
Android LayoutInflater 使用[常用于自定义视图,UI件]
查看>>
Jquery解析json数组字符串
查看>>
centos7网卡报错,ip地址丢失不见等问题解决方法
查看>>
angular2/angular4 如何通过$http的post方法请求下载二进制的Excel文件
查看>>