合并两个有序链表
题目:
将两个有序的链表合并成一个新链表,要求新的链表是通过拼接两个链表的节点来生成的,且合并后的新链表依然有序。
思路:
① 判断两个链表是否为空,若其中一个为空,返回另一个即可。
② 定义两个指针,分别指向两个链表,记这两个指针为:p1、p2。
③ p1、p2负责遍历两个链表,比较p1、p2所指向节点的值,哪个节点小,则让小的节点放入新链表中。
④ 如果p1为空,说明链表A已经被遍历完,直接将链表B链入新链表的后面即可。反之亦然。
图示:
tmp所指向的是新链表的头结点。(注意是头结点)
比较p1、p2所指向的节点的值。p2.val = 1 < p1.val=2;所以tmp.next指向p2.。如下图:
继续比较p1、p2节点的值。如下图所示: