33,311
社区成员
发帖
与我相关
我的任务
分享
bool createCrossLink(node *longList,node *shortList,int crossNum){
if(crossNum<0 || crossNum>=LONG_LENGTH) return false;
node *temp;
for(int i=LONG_LENGTH-1;i>=0;i--){
node *lp = (node *)malloc(sizeof(node));
lp->value = i;
lp->next = longList->next;
longList->next = lp;
if(i==crossNum){
temp = lp;
}
}
for(int i=SHORT_LENGTH-1;i>=0;i--){
node *sp = (node *)malloc(sizeof(node));
sp->value = i*100;
sp->next = shortList->next;
shortList->next = sp;
if(i==0){
sp->next = temp;
}
}
return true;
}
void traverse(node *ptr){
if(ptr->next!=NULL){
cout<<ptr->value<<endl;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
node *longHead = (node *)malloc(sizeof(node));
node *shortHead = (node *)malloc(sizeof(node));
longHead->next = NULL;
shortHead->next = NULL;
if(createCrossLink(longHead,shortHead,3)){
traverse(longHead);
traverse(shortHead);
}
return 0;
}
void traverse(node *ptr)
{
node* p = ptr;
while(p->next != NULL)
{
cout << p->value << endl;
p = p->next;
}
}
node* p = shortList;
for(int i = SHORT_LENGTH - 1; i >= 0; i--)
{
node *sp = (node*)malloc(sizeof(node));
sp->value = i * 100;
sp->next = NULL;
p->next = sp;
p = p->next;
}