[cc150] check palindrome of a singly linked list

Problem: Implement a function to check if a singly linked list is a palindrome.

思路:

最简单的方法是 Reverse and compare. 

另外一种非常经典的办法是用 Recursive 的思路,把一个list看成这种形式:

0 ( 1 ( 2 ( 3 ) 2 ) 1 ) 0

0 ( 1 ( 2 ( 3 3 ) 2 ) 1 ) 0

CC150里面给出的Code,非常简洁,贴在下面:

length == 1 对应上面第一种情况

length == 2 对应上面第二种情况

[cc150] check palindrome of a singly linked list_第1张图片

其中用到了一个Wrapper class 'Result', 因为Java不支持返回值传两个变量。

class Result{
  LinkedListNodde node;
  boolean result;
}

 

 

你可能感兴趣的:(check)