链表的题,遗忘得有点差不多了,所以也直接看题解了
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */ class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode ww = new ListNode(0); ListNode hh;//新创一个节点作为指针的移动,ww节点的指针就不会收到影响了 hh = ww; while(l1!=null && l2!=null){ if(l1.val < l2.val){ hh.next = l1; hh = hh.next; l1 =l1.next; }else{ hh.next = l2; hh = hh.next; l2 = l2.next; } } if(l1 == null){ hh.next = l2; }else{ hh.next = l1; } return ww.next; //如果这里返回的是hh.next 那么将都不到完整答案,因为hh的指针已经移到后面来了,所以需要用最开始创建的ww } }
这里是自己写的链表类,java的LinkedList,方法什么的都封装好了的