Microsoft Interview Question
Software Engineer in Tests<pre lang="" line="1" title="CodeMonkey77235" class="run-this">struct node
{
int data;
struct node *next;
};
void Reverse(struct node **headRef)
{
struct node *first;
struct node *rest;
if(NULL == *headRef) return;
first = headRef;
rest = first->next;
if(NULL == rest) return;
Reverse(&rest);
first->next->next = first;
first->next = NULL;
*headRef = rest;
}</pre><pre title="CodeMonkey77235" input="yes">
</pre>
if (head == null) {
return;
}
reverseByRecursion(head, null);
}
public void reverseByRecursion(ListNode node, ListNode prev) {
ListNode temp = node.getNext();
node.setNext(prev);
if (temp == null) {
head = node;
return;
}
reverseByRecursion(temp, node);
}
// formatting it properly
if (head == null) {
return;
}
reverseByRecursion(head, null);
public void reverseByRecursion(ListNode node, ListNode prev) {
ListNode temp = node.getNext();
node.setNext(prev);
if (temp == null) {
head = node;
return;
}
reverseByRecursion(temp, node);
}
- anonymous June 30, 2012