1.给定一个链表的 头节点 head ,请判断其是否为回文链表。
如果一个链表是回文,那么链表节点序列从前往后看和从后往前看是相同的。
示例 1:
输入: head = [1,2,3,3,2,1]
输出: true
示例 2:
输入: head = [1,2]
输出: false
/**
* 回文链表
*/
public class Num027 {
public boolean isPalindrome(ListNode head) {
//需要创建一个新链表,该链表是原链表时倒置
// 同时遍历原链表和新链表,若有一个值不相等则不是
ListNode newHead = reverse(head);
while (head != null){
if (head.val != newHead.val){
return false;
}
head = head.next;
newHead = newHead.next;
}
return true;
}
public Li