牛客网 合并两个排序的链表
题目链接:合并两个排序的链表_牛客题霸_牛客网 (nowcoder.com)
代码(C++)(双指针法):
#include <cstdlib> class Solution { public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { ListNode *p = pHead1,*q = pHead2,*s = new ListNode(0);//新开结点1,指针指向NULL;此时结点的VAL值为0 s->val = -1; ListNode *r = s; if (!p) return q; if (!q) return p; while(p != nullptr && q != nullptr){ if(p->val >= q->val){ r->next = q; q = q->next; }else{ r->next = p;; p = p->next; } r = r->next; } r->next = p ? p : q; return s->next; } };
代码(C++)(递归法):
#include <cstdlib> class Solution { public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { ListNode *p = pHead1,*q = pHead2; if(!p) return q; if(!q) return p; if(p->val <= q->val){ p->next = Merge(p->next, q); return p; }else{ q->next = Merge(q->next, p); return q; } } };
本文来自博客园,作者:弈星,转载请注明原文链接:https://www.cnblogs.com/8023yyl/p/17484237.html

浙公网安备 33010602011771号