主要思想:
同时遍历两个列表,同时对两个列表进行数值的比较,在这里是使用自定义的列表,因此比较的就是里面的val的值
在这里需要注意几个细节:列表1为空和列表2为空两种情况的逻辑与和逻辑非的处理方法
实现代码:
//自定义列表
class ListNode{
int val;
ListNode next;
ListNode(int val){
val = val;
}
}
public class Main{
public static void main(String[] args){
ListNode l1 = new ListNode(1);
ListNode l2 = new Listnode(2);
ListNode list = new Main().mergeTwoList(l1,l2);
}
public ListNode mergeTwoLists(ListNode l1,ListNode l2){
ListNode head = new ListNode(0);
ListNode list = head;
while(l1 != next && l2 != next){
ListNode node = new ListNode(0);
if(l1.val > l2.val){
node.val = l2.val;
l2 = l2.next;
}
else{
node.val = l1.val;
l1 = l1.val;
}
list.next = node;
list = node;
}
if(l1 == null && l2 != null){
list.next = l2;
}
if(l1 != null && l2 == null){
list.next = l1;
}
return head.next;
}
}