Leetcode——21. Merge Two Sorted Lists
来源:互联网 发布:总决赛数据 编辑:程序博客网 时间:2024/05/24 06:42
1. 概述
1.1 题目
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 解题思路
在这道题中需要将两个排列好的链表组合起来,由于链表中的元素都是有序的存在,因而只需要定义一个游走指针将两个链表连接起来就可以了。
(1)首先定义一个根root指针不指向任何的元素,定义一个游走指针将其赋值为root指针
(2)之后就开始遍历链表,要是链表1的元素比链表2的元素大,那么就将游走指针的下一个指向它,链表1往下走,游走指针也往下走;对于链表2的元素大于链表1的情况也是一样的处理
(3)在处理过程中可能会出现其中一个指针走到了末尾了,但是另外一个指针还没完的情况,那就直接将游走指针的下一个指向非空的链表就可以了
(4)返回root->next指向的地址
2. 编码
/** * 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) { if(nullptr==l1) return l2; if(nullptr==l2) return l1; ListNode* root = new ListNode(0); ListNode* pl = root; while(1) { if(l1 == nullptr) { pl->next = l2; break; } //l1走完了,将pl剩下的节点指向l2的剩余节点 if(l2 == nullptr) { pl->next = l1; break; } //l2走完了,将pl剩下的节点指向l1的剩余节点 //一个节点一个节点的比较,比较小的节点就往下走 if(l1->val > l2->val) { pl->next = l2; l2 = l2->next; } else { pl->next = l1; l1 = l1->next; } pl = pl->next; //pl是一个节点,一轮比较完成之后需要将pl指向它的下一位,防止下次迭代修改 } pl = root->next; delete root; root = nullptr; return pl; }};
阅读全文
0 0
- 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 21. Merge Two Sorted Lists 题解 —— Java
- LeetCode算法题——21. Merge Two Sorted Lists
- Leetcode——21. Merge Two Sorted Lists
- 21. Merge Two Sorted Lists leetcode(lists)
- Algorithms—21.Merge Two Sorted Lists
- [LeetCode]21.Merge Two Sorted Lists
- LeetCode --- 21. Merge Two Sorted Lists
- LeetCode 21.Merge Two Sorted Lists
- [Leetcode] 21. Merge Two Sorted Lists
- 【LeetCode】21.Merge Two Sorted Lists
- 【leetcode】21. Merge Two Sorted Lists
- [leetcode] 21.Merge Two Sorted Lists
- [leetcode] 21.Merge Two Sorted Lists
- python中使用selenium的一些注意点
- SQLAutoCode
- Gerrit历史记录查询
- 微软人工智能公开课中文版视频一,微软人工智能概览
- centos7下安装配置FMS5.0
- Leetcode——21. Merge Two Sorted Lists
- 安卓支付宝支付的小坑。。。。
- linux(centos 6.8 64位)下安装JDK8
- imgproc模块--直方图比较
- 项目中js文件修改后浏览器不能及时更新的解决办法
- IC设计笔记----记录我踩过的坑
- HTML 5 <input> required 属性
- CSS3常用功能的写法
- 欢迎使用CSDN-markdown编辑器