合并2个排序的链表
主要也是考察指针的运用,和代码的鲁棒性。
直接上代码:
ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { if( pHead1 == NULL && pHead2 == NULL) return NULL; if( pHead1 == NULL ) return pHead2; else if(pHead2 == NULL) return pHead1; ListNode* p_merge = NULL; if(pHead1->value < pHead2->value) { p_merge = pHead1; p_merge->pNext = Merge(pHead1->pNext,pHead2); } else { p_merge = pHead2; p_merge->pNext = Merge(pHead1,pHead2->pNext); } return p_merge; }
采用递归方法,代码简洁。当然如果链表很长效率会比较差

浙公网安备 33010602011771号