Given two linked lists, represented as linked lists (every character is a node in linked list). Write a function compare() that works similar to strcmp(), i.e., it returns 0 if both strings are same, 1 if first linked list is lexicographically greater, and -1 if second string is lexicographically greater.

Examples:

Input: list1 = g->e->e->k->s->a
       list2 = g->e->e->k->s->b
Output: -1

Input: list1 = g->e->e->k->s->a
       list2 = g->e->e->k->s
Output: 1

Input: list1 = g->e->e->k->s
       list2 = g->e->e->k->s
Output: 0

Java programming

[pastacode lang=”java” manual=”%2F%2F%20Java%20program%20to%20compare%20two%20strings%20represented%20as%20a%20linked%20list%0A%20%0A%2F%2F%20Linked%20List%20Class%0Aclass%20LinkedList%20%7B%0A%20%0A%20%20%20%20Node%20head%3B%20%20%2F%2F%20head%20of%20list%0A%20%20%20%20static%20Node%20a%2C%20b%3B%0A%20%0A%20%20%20%20%2F*%20Node%20Class%20*%2F%0A%20%20%20%20static%20class%20Node%20%7B%0A%20%0A%20%20%20%20%20%20%20%20char%20data%3B%0A%20%20%20%20%20%20%20%20Node%20next%3B%0A%20%0A%20%20%20%20%20%20%20%20%2F%2F%20Constructor%20to%20create%20a%20new%20node%0A%20%20%20%20%20%20%20%20Node(char%20d)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20data%20%3D%20d%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20next%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%0A%20%20%20%20int%20compare(Node%20node1%2C%20Node%20node2)%20%7B%0A%20%0A%20%20%20%20%20%20%20%20if%20(node1%20%3D%3D%20null%20%26%26%20node2%20%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%201%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20while%20(node1%20!%3D%20null%20%26%26%20node2%20!%3D%20null%20%26%26%20node1.data%20%3D%3D%20node2.data)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20node1%20%3D%20node1.next%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20node2%20%3D%20node2.next%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%0A%20%20%20%20%20%20%20%20%2F%2F%20if%20the%20list%20are%20diffrent%20in%20size%0A%20%20%20%20%20%20%20%20if%20(node1%20!%3D%20null%20%26%26%20node2%20!%3D%20null)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20(node1.data%20%3E%20node2.data%20%3F%201%20%3A%20-1)%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%0A%20%20%20%20%20%20%20%20%2F%2F%20if%20either%20of%20the%20list%20has%20reached%20end%0A%20%20%20%20%20%20%20%20if%20(node1%20!%3D%20null%20%26%26%20node2%20%3D%3D%20null)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%201%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20if%20(node1%20%3D%3D%20null%20%26%26%20node2%20!%3D%20null)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20-1%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20return%200%3B%0A%20%20%20%20%7D%0A%20%0A%20%20%20%20public%20static%20void%20main(String%5B%5D%20args)%20%7B%0A%20%0A%20%20%20%20%20%20%20%20LinkedList%20list%20%3D%20new%20LinkedList()%3B%0A%20%20%20%20%20%20%20%20Node%20result%20%3D%20null%3B%0A%20%0A%20%20%20%20%20%20%20%20list.a%20%3D%20new%20Node(‘g’)%3B%0A%20%20%20%20%20%20%20%20list.a.next%20%3D%20new%20Node(‘e’)%3B%0A%20%20%20%20%20%20%20%20list.a.next.next%20%3D%20new%20Node(‘e’)%3B%0A%20%20%20%20%20%20%20%20list.a.next.next.next%20%3D%20new%20Node(‘k’)%3B%0A%20%20%20%20%20%20%20%20list.a.next.next.next.next%20%3D%20new%20Node(‘s’)%3B%0A%20%20%20%20%20%20%20%20list.a.next.next.next.next.next%20%3D%20new%20Node(‘b’)%3B%0A%20%0A%20%20%20%20%20%20%20%20list.b%20%3D%20new%20Node(‘g’)%3B%0A%20%20%20%20%20%20%20%20list.b.next%20%3D%20new%20Node(‘e’)%3B%0A%20%20%20%20%20%20%20%20list.b.next.next%20%3D%20new%20Node(‘e’)%3B%0A%20%20%20%20%20%20%20%20list.b.next.next.next%20%3D%20new%20Node(‘k’)%3B%0A%20%20%20%20%20%20%20%20list.b.next.next.next.next%20%3D%20new%20Node(‘s’)%3B%0A%20%20%20%20%20%20%20%20list.b.next.next.next.next.next%20%3D%20new%20Node(‘a’)%3B%0A%20%0A%20%20%20%20%20%20%20%20int%20value%3B%0A%20%20%20%20%20%20%20%20value%20%3D%20list.compare(a%2C%20b)%3B%0A%20%20%20%20%20%20%20%20System.out.println(value)%3B%0A%20%0A%20%20%20%20%7D%0A%7D” message=”” highlight=”” provider=”manual”/]

Output:

1