C++ 排序链表的合并-a
已知两个已排序链表头节点指针l1与l2,将这两个链表合并,合并后认为有序的,返回合并后的头节点。 思路: 比较l1和l2指向的节点,将较小的节点插入到pre指针后,并向前移动较小节点对应的指针。 # include <stdio.h> struct ListNode { int val ; ListNode * next ; ListNode ( int x ) : val ( x ) , next ( NULL ) { } } ; class Solution { public : Solution ( ) { } ~ Solution ( ) { } ListNode * mergeTwoLists ( ListNode * l1 , ListNode * l2 ) { ListNode temp_head ( 0 ) ; ListNode * pre = & temp_head ; while ( l1 && l2 ) { if ( l1 - > val < l2 - > val ) { pre - > next = l1 ; l1 = l1 - > next ; } else { pre - > next = l2 ; l2 = l2 - > next ; } pre = pre - > next ; } if ( l1 ) { pre - > next = l1 ; }