题目描述:
Given a singly linked list, determine if it is a palindrome.
Example 1:
Input: 1->2 Output: false
Example 2:
Input: 1->2->2->1 Output: true
中文理解:判断一个链表的所有值是不是一个回文数。
解题思路:使用动态数组储存链表的每个节点的值,再比较对应位置的值是否全部都相同,得到判断结果。
代码(java):
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public boolean isPalindrome(ListNode head) {
ArrayList<Integer> con=new ArrayList<Integer>();
while(head!=null){
con.add(head.val);
head=head.next;
}
for(int i=0;i<con.size()/2;i++){
if(con.get(i).intValue()!=con.get(con.size()-1-i).intValue())return false;
}
return true;
}
}