什么是回文链表
回文链表是指一个链表,其节点值从前往后和从后往前读是相同的。例如,链表 1->2->3->2->1 就是一个回文链表,因为无论从头到尾还是从尾到头读,节点值都是一样的
题目描述:
给你一个单链表的头节点 head
,请你判断该链表是否为回文链表。如果是,返回 true
;否则,返回 false
。
示例 1:
输入:head = [1,2,2,1] 输出:true示例 2:
输入:head = [1,2] 输出: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) {if(head==null){return false;}List<Integer> list= new ArrayList<>();ListNode pA = head;while(pA!=null){list.add(pA.val);pA = pA.next;}int n = list.size()-1;for(int i=0;i<list.size()/2;i++){if(list.get(i)!=list.get(n)){return false;}n--;}return true;}
}