思路:首先判断两个有序链表是否为空,不为空则找出两个链表当前节点数值较小的,添加进自己定义的链表,直到有一个链表为空,然后将不为空的有序链表按照顺序添加进自定义的链表中。
上代码:
public class Solution { /** * * @param l1 ListNode类 * @param l2 ListNode类 * @return ListNode类 */ public ListNode mergeTwoLists (ListNode l1, ListNode l2) { // write code here ListNode res=new ListNode(-1);//初始化自定义链表 ListNode node=res;//需要返回的链表,保存自定义链表头节点 while(l1!=null&&l2!=null){ if(l1.val>=l2.val){//l2的节点值较小 res.next=l2; res=res.next; l2=l2.next; }else{//l1的节点值较小 res.next=l1; res=res.next; l1=l1.next; } } if(l1!=null){//最后将不为空的链表添加进去 while(l1!=null){ res.next=l1; res=res.next; l1=l1.next; } }else if(l2!=null){ res.next=l2; res=res.next; l2=l2.next; } return node.next; } }