LeetCode 234. Palindrome Linked List
考点 | 难度 |
---|---|
Linked List | Easy |
题目
Given the head
of a singly linked list, return true
if it is a palindrome.
思路
先用Floyd’s Cycle Detection Algorithm求linked list的中点。一个pointer从开头开始向后,另一个pointer从末尾开始向前,同时compare,如果有不同的就返回false
,如果两个都到达中点,返回true
。
答案
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if(l1 == null) return l2;
if(l2 == null) return l1;
ListNode res;
boolean l1_is_smaller = (l1.val<l2.val);
if( l1_is_smaller ){
res = l1;
res.next = mergeTwoLists(l1.next,l2);
}
else{
res = l2;
res.next = mergeTwoLists(l1,l2.next);
}
return res;
}