LeetCode OJ——Merge Two Sorted Lists
来源:互联网 发布:mac os10.8.5升级10.9 编辑:程序博客网 时间:2024/05/24 06:32
题目:
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; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ListNode *p1; //指向l1的指针 ListNode *p2; //指向l2的指针 ListNode *pre; //指向组合链遍历指针前的一个节点指针 ListNode *tmp; int flag; //当flag=1时,表示l1的头结点为新链的头结点,当flag=2时,l2头结点才是 p1 = l1; p2 = l2; if (l1 == NULL) //链l1为空 { return l2; } if (l2 == NULL) //链l2为空 { return l1; } if (p1->val <= p2->val)//当l1的头结点不大于l2的头节点,则新链的头结点为l1的头结点,反之,为l2 { pre = p1; while (1) { if (p1 == NULL && p2 != NULL) //链l1遍历完,l2未遍历完,由于头结点在l1上,故l1尾节点要加上l2 { pre->next = p2; return l1; } if (p1 != NULL && p2 == NULL) //链l1遍未历完,l2遍历完,由于头结点在l1上,故直接返回l1 { return l1; } if (p1->val > p2->val) //将l2中的节点插入到l1中,继续向前遍历 { pre->next = p2; tmp = p2; p2 = p2->next; tmp->next = p1; pre = pre->next; } else{ pre = p1; p1 = p1->next; } } } else{ pre = p2; while (1) { if (p1 == NULL && p2 != NULL) //链l1遍历完,l2未遍历完,由于头结点在l2上,故直接返回l2 { //pre->next = p2; return l2; } if (p1 != NULL && p2 == NULL) //链l1遍未历完,l2遍历完,由于头结点在l2上,故l1尾节点要加上l1 { pre->next = p1; return l2; } if (p2->val > p1->val) //将l2中的节点插入到l1中,继续向前遍历 { pre->next = p1; tmp = p1; p1 = p1->next; tmp->next = p2; pre = pre->next; } else{ pre = p2; p2 = p2->next; } } } }};
结果:
0 0
- LeetCode OJ——Merge Two Sorted Lists
- LeetCode OJ:Merge Two Sorted Lists
- [LeetCode OJ]Merge Two Sorted Lists
- LeetCode OJ Merge Two Sorted Lists
- 【LeetCode OJ 021】Merge Two Sorted Lists
- <LeetCode OJ> 21. Merge Two Sorted Lists
- LeetCode OJ - Merge Two Sorted Lists
- LeetCode——Merge Two Sorted Lists
- LeetCode——Merge Two Sorted Lists
- LeetCode——Merge Two Sorted Lists
- LeetCode——Merge Two Sorted Lists
- LeetCode—Merge Two Sorted Lists
- LeetCode OJ - Merge Sorted Array & Merge Two Sorted Lists
- LeetCode OJ算法题(六十四):Merge Two Sorted Lists
- LeetCode OJ 21 Merge Two Sorted Lists [Easy]
- leetcode——21——Merge Two Sorted Lists
- Python学习——leetcode(Merge Two Sorted Lists )
- leetcode 021 —— Merge Two Sorted Lists
- iOS UI 17 初级数据持久化
- 对KLT,主成分分析(PCA)算法的理解
- ExpendableListActivity控件的使用
- Git使用
- 提取行间事件
- LeetCode OJ——Merge Two Sorted Lists
- iOS UI 18 数据库
- 数据储存
- IOS安装FFmpeg调用成功总结的一些问题
- Gartner对微服务的解读,比较全面
- windbg基本知识和常用命令
- android混淆打包、反编译、重新打包签名
- 第八周项目3-顺序串算法(1)
- js中获取事件对象的方法小结