赞
踩
struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2){ if(l1==NULL)//当两链表都为空时,返回NULL,当其中一个为空时,返回另一个非空链表 { return l2==NULL? NULL:l2; } if(l2==NULL) { return l1==NULL? NULL:l1; } struct ListNode* head=(struct ListNode*)malloc(sizeof(struct ListNode)); head->next=NULL; struct ListNode* p=head; if(l1->val<l2->val) { head->val=l1->val; l1=l1->next; } else { head->val=l2->val; l2=l2->next; } while(l1&&l2)//从两个链表的表头开始,比较两个链表节点的大小,当其中一个链表为空时,退出循环 { struct ListNode* temp=(struct ListNode*)malloc(sizeof(struct ListNode));//把数值更小的一个节点存储到一个新申请的节点中,同时该链表的指针向后移一位 temp->next=NULL; if(l1->val<l2->val) {
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。