《剑指offer》合并两个排序的链表

【 声明:版权所有,转载请标明出处,,请勿用于商业用途。 联系信箱:libin493073668@sina.com】

题目链接:?rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路因为是有序递增链表,要求合并之后还是满足单调不减的原则,我们需要两个指针分别指向两个链表的开头,然后一边比较,每次都取小的接在新链表的后面,并且移动指针。

/*struct ListNode {int val;struct ListNode *next;ListNode(int x) :val(x), next(NULL) {}};*/class Solution{public:ListNode* Merge(ListNode* head1, ListNode* head2){if(head1==nullptr)return head2;if(head2==nullptr)return head1;ListNode *ptr1 = head1;ListNode *ptr2 = head2;ListNode *newlist = new ListNode(0);ListNode *cur = newlist;while(ptr1&&ptr2){if(ptr1->val <= ptr2->val){cur->next = ptr1;ptr1 = ptr1->next;cur = cur->next;}else{cur->next = ptr2;ptr2 = ptr2->next;cur = cur->next;}cur->next = nullptr;}if(ptr1)cur->next = ptr1;if(ptr2)cur->next = ptr2;return newlist->next;}};

版权声明:本文为博主原创文章,如果转载,请注明出处

敏而好学,不耻下问。

《剑指offer》合并两个排序的链表

相关文章:

你感兴趣的文章:

标签云: