首先建立一个哨兵节点,该节点的作用是对边界条件的考虑,该节点的一下个节点为合并后的链表的头结点。
当被比较的两个链表中的节点不为null时,value值比较小的节点作为合并后的链表的下一节点,并移动相应
节点的指针,当被比较的节点为null时,那么合并后的节点指向非null的节点,具体代码如下
//建立哨兵节点
ListNode p = new ListNode(0);
ListNode head = p;
while (p1 != null && p2 != null) {
if (p1.val <= p2.val) {
p.next = p1;
p1 = p1.next;
} else if (p1.val > p2.val) {
p.next = p2;
p2 = p2.next;
}
p = p.next;
}
if (p1 == null) {
p.next = p2;
}
if (p2 == null) {
p.next = p1;
}
return head.next;
复制代码
2522

被折叠的 条评论
为什么被折叠?



