C++ Programming Question:
Download Questions PDF

How do you write a function that can reverse a linked-list in C++?

C++ Programming Interview Question
C++ Programming Interview Question

Answers:

Answer #1
void reverselist(void)
{
if(head==0)
return;
if(head-<next==0)
return;
if(head-<next==tail)
{
head-<next = 0;
tail-<next = head;
}
else
{
node* pre = head;
node* cur = head-<next;
node* curnext = cur-<next;
head-<next = 0;
cur-<next = head;

for(; curnext!=0; )
{
cur-<next = pre;
pre = cur;
cur = curnext;
curnext = curnext-<next;
}

curnext-<next = cur;
}
}

Answer #2
node* reverselist(node* head)
{
if(0==head || 0==head->next)
//if head->next ==0 should return
head instead of 0;
return 0;

{
node* prev = head;
node* curr = head->next;
node* next = curr->next;

for(; next!=0; )
{
curr->next = prev;
prev = curr;
curr = next;
next = next->next;
}
curr->next = prev;

head->next = 0;
head = curr;
}

return head;
}


Download C++ Programming Interview Questions And Answers PDF

Previous QuestionNext Question
What is a container class? What are the types of container classes in C++?What is polymorphism in C++?