A singly linked list is filled a character in each node. Write a function to determine if the linked list is a palindrome.
Refer to strategies we've previously used in dealing with linked lists.
Initialize two pointers, slow and fast, both initially pointing to the head node. Increment the slow pointer by one and the fast by two. At each step push the node refrenced by the slow pointer into a stack. As soon as the fast pointer hits the end of the linked list (and thus points to null) break the loop.

Start another loop (while slow pointer does not hit the end/point to null and stack is not null). Iterate the slow pointer by one again and at each step compare the top of the stack with the slow pointer, popping the stack with each subsequent iteration. If the two are not equal then the linked list is not a palindrome.

Another solution which uses recursion (code in Java & C) can be seen here.

Thoughts or alternate solution? Let us know in the comments below!