//数据域val,指针域next
struct ListNode{
int val;
struct ListNode* next;
};
//创建单链表
struct ListNode* CreatList(){
struct ListNode* p1,* p2,* head;
head=NULL;
p1=p2=(struct ListNode*)malloc(sizeof(struct ListNode));
printf("请输入整数(输入0结束输入):\n");
scanf("%d",&p1->val);
int n=0;
while(p1->val != 0){
++n;
if(n==1){
head=p1;
}
else{
p2->next=p1;
}
p2=p1;
p1=(struct ListNode*)malloc(sizeof(struct ListNode));
scanf("%d",&p1->val);
}
p2->next=NULL;
return head;
}
//mergeTwoList() 升序合并两个链表
struct ListNode* mergeTwoList(struct ListNode* head1,struct ListNode* head2){
struct ListNode* p1,*p2,*p3;
p1=head1,p2=head2;
struct ListNode* newHead=(str