已知单链表的存储结构类型定义如下。typedef int DataType;typedef struct node{DataTy

已知单链表的存储结构类型定义如下。
typedef int DataType;
typedef struct node{
DataType data;
struct node*next;
}ListNode;
typedef ListNode*LinkList;
ListNode *p;
LinkList head1;
双向链表的存储结构类型定义如下。
typedef struct dlnode{
DataType data;
struct dlnode*prior,*next;
}DLNode;
typedef DLNode*DLinkList;
DLinkList head2;
编写程序,对给定的单链表head1,将其中的数据按原次序复制到双向链表head2中。函数原型为:void f34(head1,&head2);。
【正确答案】:void f34(LinkList h1,DLinkList *h2)
{ ListNode*temp1=h1;
DLNode *node,*pre=NULL;
while(temp1!=NULL)
{ node=(DLNode*)malloc(sizeof(DLNode));
node-> data=temp1-> data;
node-> next=NULL;
node-> prior=pre;
temp1=temp1-> next;
if(*h2==NULL)
{ *h2=node;
pre=node;
}
else
{ pre-> next=node;
pre=node;
}
}
}