static void TestPalindrome() { CharLinkedList test = new CharLinkedList(); test.Add('a'); test.Add('b'); test.Add('b'); test.Add('a'); Console.WriteLine($"For characters 'a' 'b' 'b' 'a' IsPalindrome returns: {IsPalindrome(test)}"); CharLinkedList test2 = new CharLinkedList(); test2.Add('a'); test2.Add('b'); test2.Add('c'); test2.Add('d'); Console.WriteLine($"For characters 'a' 'b' 'c' 'd' IsPalindrome returns: {IsPalindrome(test2)}"); }
static bool IsPalindrome(CharLinkedList linkedList) { StringBuilder sb1 = new StringBuilder(); StringBuilder sb2 = new StringBuilder(); CharStack stack = new CharStack(new CharLinkedList()); CharNode current = linkedList.Head; while (current != null) { char value = current.Value; sb1.Append(value); stack.Push(value); current = current.Next; } while (!stack.IsEmpty()) { sb2.Append(stack.Pop()); } return(sb1.ToString() == sb2.ToString()); }