解题思路:
以升序为例
第一步当然是判空 如果其中一个链表为空 则返回另一个链表即可
要有序 所以需要比较结点大小 创建两个引用指向两个链表 同时分别创建将要合成链表的头和尾
比较两个结点的大小 将较小的结点 cur 放到新的链表尾部
此时要考虑特殊情况 当新链表为空时 要把头和尾都设置成 cur 同时 cur 向后移
新链表不为空时将 cur 放到尾部 同时 newTail 和 cur 向后移
最后再处理循环结束时 一个链表为空 另一个不为空的情况 直接将非空链表并到新链表尾部即可
//将两个有序链表合并为一个新的有序链表(升序为例)
public ListNode conflateList(ListNode head1,ListNode head2) {
//先进行判空
if (head1 == null) {
return head2;
}
if (head2 == null) {
return head1;
}
//设置两个引用分别指向两个链表
ListNode cur1 = head1;
ListNode cur2 = head2;