目录
基本知识
- 链表:在存储单元上,非连续、非顺序的存储结构;数据元素的逻辑顺序是通过链表中的指针链接次序实现;链表每个结点包含两部分:数据域与指针域,数据域存储数据元素,指针域存储下一节点的指针。
- 链表分为:单链接列表和双链接列表,如下:
题目描述
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例 1:
输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4]
示例 2:
输入:l1 = [], l2 = [] 输出:[]
示例 3:
输入:l1 = [], l2 = [0] 输出:[0]
提示:
- 两个链表的节点数目范围是
[0, 50]
-100 <= Node.val <= 100
l1
和l2
均按 非递减顺序 排列
题解(labuladong)
看过labuladong的题解后,自己复现一下,出现了一个错误
问题:返回值那里应该返回链表dummy,而不是p ,因为list是通过指针指向地址来查询和存储数据的,直接将一个list赋值给另一个list,会导致两个list都指向同一个地址,其中一个list发生改变,另一个list也会发生改变,所以相当于dummy指向list开头,而p不断使用next迭代,更新列表数据,返回值自然应该用dummy返回。
修改: