剑指offer-合并两个排序的链表
Posted DeaglePc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer-合并两个排序的链表相关的知识,希望对你有一定的参考价值。
从小的开始作为头结点,然后比较选择较小的进行链接
需要注意头结点确定的时候就要保存下来,因为后面会一直变化往后链接新元素
/* 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) return pHead2; if(!pHead2) return pHead1; ListNode *ph = NULL, *ph1, *ph2; ph1 = pHead1, ph2 = pHead2; if(ph1->val < ph2->val){ ph = ph1; ph1 = ph1->next; } else{ ph = ph2; ph2 = ph2->next; } ListNode *tmp = ph; while(ph1 && ph2){ if(ph1->val < ph2->val){ ph->next = ph1; ph = ph->next; ph1 = ph1->next; } else{ ph->next = ph2; ph = ph->next; ph2 = ph2->next; } } if(ph1){ ph->next = ph1; } else if(ph2){ ph->next = ph2; } return tmp; } };
以上是关于剑指offer-合并两个排序的链表的主要内容,如果未能解决你的问题,请参考以下文章