21. 合并两个有序链表
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入: 1->2->4, 1->3->4 输出: 1->1->2->3->4->4 思路: 两个指针分别指向待比较的结点,不断比较插入到新的链表中,直到其中一个链表为空,将另一个链表剩下的所有结点全部插入到新链表,返回新链表。 题解: /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public : ListNode * head = ( ListNode * ) malloc ( sizeof ( ListNode ) ) ; ListNode * p = head ; ListNode * mergeTwoLists ( ListNode * l1 , ListNode * l2 ) { while ( l1 != NULL && l2 != NULL ) { if ( l1 - > val < l2 - > val ) { p - > next = l1 ; l1 = l1 - > next ; } else {