LeetCode算法入门- Merge Two Sorted Lists -day15
- 题目描述:
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.
Example:
Input: 1->2->4, 1->3->4
Output: 1->1->2->3->4->4
-
题目分析:有点类似于归并排序,从头结点开始对比,小的放下去,并且往后移动
-
Java实现:
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/
class Solution {public ListNode mergeTwoLists(ListNode l1, ListNode l2) {if(l1 == null)return l2;if(l2 == null)return l1;ListNode result = new ListNode(0);ListNode temp = result;while(l1 != null && l2 != null){if(l1.val < l2.val){result.next = l1;l1 = l1.next;}else{result.next = l2;l2 = l2.next;}//这一步容易忽略,要将result.next的值付给result,才能递归下去result = result.next;}if(l1 != null){result.next = l1;}if(l2 != null){result.next = l2;}return temp.next;}
}