/** * 将两个有序的链表合并为一个新链表,要求新的链表是通过拼接两个链表的节点来生成的,且合并后新链表依然有序。 * 思路: * l1为空返回l2,l2为空返回l2 * 都不为空,定义一个头节点,循环比较两个列表的大小,小的拼接到头结点,并拆除当前节点 * */ public class NC33 { public ListNode mergeTwoLists (ListNode l1, ListNode l2) { if(l1==null){ return l2; } if(l2 == null){ return l1; } ListNode head = null; if(l1.val<=l2.val){ head = l1; l1 = l1.next; }else{ head = l2; l2 = l2.next; } ListNode temphead = head; while (l1 != null || l2!=null){ if(l1==null){ temphead.next = l2; break; } if(l2==null){ temphead.next = l1; break; } if(l1.val<=l2.val){ temphead.next = l1; l1= l1.next; }else{ temphead.next = l2; l2= l2.next; } temphead = temphead.next; } return head; } }
每日算法--合并两个有序列表
最新推荐文章于 2024-07-08 22:12:26 发布