Given an unsorted linked list, write a function which deletes any duplicate nodes from the list by traversing the list only once.
Given an linked list of integers, rearrange it such that every second node of the linked list is greater than its left and right nodes. In other words, rearrange linked list node in alternating high-low.
Given a linked list containing 0’s, 1’s and 2’s, sort linked list by doing single traversal of it.
Given a linked list, detect cycle in it.
Given a linked list, split it into two lists where each list contains alternating elements from the original list and then finally join them back together.
Given a linked list, move its last node to the front.
Given a linked list, check if linked list is palindrome or not. Simple solution would be to create clone of the linked list, reverse it and check if both linked lists are equal or not. This approach requires three traversals of the linked list and requires extra space for storing duplicates list. Email …
Given a linked list, rearrange the nodes in specific way in linear time and constant space. The alternate positions in the output list should be filled with the nodes starting from the beginning and from the very end of the original list respectively.
Given a linked list and two positive integers M and N, delete every N nodes in it after skipping M nodes.
Write a function that takes two lists, each of which is sorted in increasing order, and merges the two together into one list which is in decreasing order and return it. In other words, merge two sorted linked lists from their end.
Given two linked lists, merge their nodes together into first list by taking nodes alternately between the two lists. If first list runs out, remaining nodes of second list should not be moved.
Given a linked list and a positive integer K, find K’th node from the end in a linked list.