赞
踩
这个题的思路和归并排序的思路一样。
先来看合并两个有序链表的代码:
传入两个链表的头结点,new一个head节点当作合并后的链表的头结点,当两个链表都没有走到链尾的时候,将两链表的节点有序放入合并后的链表中。当某一个链表已经走到了链尾,此时把另一个链表剩下的部分接到合并后的链表尾部。
返回head节点的下一个节点,因为head节点是new出来的,要记得delete释放掉这个节点的内存。
ListNode* mergeTwo(ListNode* l1,ListNode*l2){ // new一个节点当作合并后的链表的头结点 ListNode* head=new ListNode(0); ListNode* temp=head; // 当两个链表都没有走到链尾的时候,将两链表的节点有序放入合并后的链表中 while(l1 && l2){ if(l1->val <= l2->val){ temp->next=l1; temp=temp->next; l1=l1->next; }else{ temp-&
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。