题解 | #合并两个排序的链表#
合并两个排序的链表
http://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337
- 记得刚开始的dummy node,同时申请一个指针指向这个dummynode
- 初始化两个指针指向两个头节点,这都是一般的操作。
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { if(!pHead1&&!pHead2) return NULL; ListNode* dummy = new ListNode(-1), *p = dummy; ListNode* p1 = pHead1; ListNode* p2 = pHead2; while(p1&&p2){ if(p1->val>p2->val){ p->next = p2; p2 = p2->next; }else{ p->next = p1; p1= p1->next; } p = p->next; } if(p1){ p->next = p1; } if(p2){ p->next = p2; } return dummy->next; } };
算法解析 文章被收录于专栏
这里主要是算法岗的自我思路总结