leetcode Merge Two Sorted Lists
2015-08-11 21:17
459 查看
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.
即将两个以排好序的链表按照顺序合并成一个链表并返回:
即将两个以排好序的链表按照顺序合并成一个链表并返回:
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2) { if(l1==NULL&&l2==NULL)return 0; if(l1==NULL&&l2!=NULL)return l2; if(l1!=NULL&&l2==NULL)return l1; struct ListNode*head=NULL,*tail=NULL; struct ListNode*p=l1; struct ListNode*q=l2; if(p->val<q->val){head=p;p=p->next;} else {head=q;q=q->next;} tail=head;//构造一个链表并初始化 while(p&&q){ if(p->val<q->val){tail->next=p;tail=p;p=p->next;} else {tail->next=q;tail=q;q=q->next;} } if(p)tail->next=p; if(q)tail->next=q; return head; }思路:先构造一个单链表,并从两个链表里第一个节点中选择满足顺序的一个作为所构造链表的第一个节点。之后比较两个链表节点大小,并采用尾插入法完成链表。
相关文章推荐
- HDOJ 1102 Constructing Roads 最小生成树 kruskal && Prim
- Zookeeper之观察机制(配置服务)
- POJ 3169 Layout (差分约束)
- HDU 2122 HDU Today(dijkstra+map)
- 黑马程序员——详细的类的声明和实现
- Hdu 3068 Manacher算法求最长回文串长度
- 更新UI方式
- IOS 本地通知和远程通知
- HDU 5371 (2015多校联合训练赛第七场1003)Hotaru's problem(manacher+二分/枚举)
- POJ 3253 Fence Repair
- [JavaSecurity] - RSA Encryption
- TC SRM 665 DIV2 A LuckyXor 暴力
- 配置 Windows 下的 nodejs C++ 模块编译环境 安装 node-gyp
- Thread类的interrupted方法和isInterrupted方法的区别
- centos iso文件配置local yum源
- 堆区 内存的动态分配和手动释放 重复练习5遍
- 主线程和子线程
- NSURLProtocol和NSRunLoop的那些坑
- [swift]问号和叹号的区别
- 安德鲁斯Selector简介