Palindrome Linked List
You are given a singly Linked List of integers. Your task is to return true if the given singly linked list is a palindrome otherwise returns false.
For example:
The given linked list is 1 -> 2 -> 3 -> 2-> 1-> NULL.
It is a palindrome linked list because the given linked list has the same order of elements when traversed forwards and backward.
Follow Up:
Can you solve the problem in O(N) time complexity and O(1) space complexity iteratively?
Input format :
The first line of input contains an integer 'T' representing the number of test cases or queries to be processed. Then the test case follows.
The only line of each test case contains the elements of the singly linked list separated by a single space and terminated by -1. Hence, -1 would never be a list element.
Output format :
For each test case, print “true” or “false” in a separate line.
Note :
You do not need to print anything, it has already been taken care of. Just implement the given function.
Constraints :
1 <= T <= 10
0 <= L <= 10^5
1 <= data <= 10^9 and data != -1
Where L is the number of nodes in the Linked List.
Time Limit: 1 sec
CodingNinjas
author
2y
Approach :
1) Recursively traverse the entire linked list to get the last node as a rightmost node.
2) When we return from the last recursion stack. We will be at the last node of the Linked List. Then ...read more
CodingNinjas
author
2y
Using Stack
- The idea is to traverse the Linked List from head to tail and push every encountered node data into the stack.
- Then we traverse the Linked List and for each node, we pop the top element from...read more
CodingNinjas
author
2y
Clone Linked List
- The idea is to create a clone of Linked List and reverse it.
- Now traverse both the Linked List and for each node data, we compare it, if they mismatch then the Linked List is not palin...read more
CodingNinjas
author
2y
Recursion
- The solution is to use a recursion stack. We will use two pointers left and right, one for the leftmost node and one for the rightmost node, of Linked List.
- In each recursion call, we check
- Sub...read more
CodingNinjas
author
2y
Reversing the Second Half
- We divide the Linked list into two equal halves by finding the middle node of Linked List
- To find the middle of the Linked List, we will create two pointers slow and fast which...read more
Add answer anonymously...
Top Practo Software Developer interview questions & answers
Popular interview questions of Software Developer
Top HR questions asked in Practo Software Developer
Stay ahead in your career. Get AmbitionBox app
Helping over 1 Crore job seekers every month in choosing their right fit company
65 L+
Reviews
4 L+
Interviews
4 Cr+
Salaries
1 Cr+
Users/Month
Contribute to help millions
Get AmbitionBox app