Everywhere on net I see the program which start revering from tail like
here node is the header node
reverseNode(int node){
if(node==null){
return;
}
reverseNode(node.next);
Node temp = node.next;
node.next = node.prev;
node.prev=temp;
if(node.prev==null){
headNode = node;
}
}
But I can think of approach where i can reverse from header node also like
here node is the header node
reverseNode(int node){
if(node==null){
return;
}
Node temp = node.next;
node.next = node.prev;
node.prev=temp;
reverseNode(node.prev);
if(node.prev==null){
headNode = node;
}
}
But I do not see approach mentioned anywhere. Is there any bug/issue in this approach or its not optimized ?