234.
给你一个单链表的头节点 head
,请你判断该链表是否为回文链表。如果是,返回 true
;否则,返回 false
。
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public boolean isPalindrome(ListNode head) {
//将链表值复制到数组中
List arr = new ArrayList();
ListNode cur = head;
//这里是cur不等于null
while(cur != null){
arr.add(cur.val);
cur = cur.next;
}
int l=0;
int r=arr.size()-1;
while(l<r){
//list集合如何获取指定位置的值
// if(arr.get(l)!= arr[r]){
// return false;
// }
//equals可以预防空指针问题
if(!arr.get(l).equals(arr.get(r))){
return false;
}
l++;
r--;
}
return true;
}
}