package Leetcode.LinkedList.Leetcode234;
/**
* @AUTHOR ZHANG
* @data 2021/3/8 23:54
*/
/**
* 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; }
* }
*/
/*
输入: 1->2
输出: false
示例 2:
输入: 1->2->2->1
输出: true
12345432
false
*/
class ListNode {
int val;
ListNode next;
ListNode() {
}
ListNode(int val) {
this.val = val;
}
ListNode(int val, ListNode next) {
this.val = val;
this.next = next;
}
}
//1->2
//1->2->2->1
//1234 4321
class Solution {
public static boolean isPalindrome(ListNode head) {
if (head == null) return false;
int count = 1;
ListNode slow = head;
ListNode fast = head.next;
//找到连续两个值相同的结点
//[1,2,2,1] true
//[1] true
//[0,0]
//[1,0,1]
if (fast == null) return true;
while (fast.val != slow.val && fast.next != null) {
fast = fast.next;
slow = fast;
count++;
System.out.println(count);
//如果遇到两个值相同的结点
if (fast.val == slow.val) {
int count1 = 0;
while (fast.next != null) {
fast = fast.next;
count1++;
}
System.out.println(count1);
if (count == count1) return true;
else return false;
}
}
return false;
}
}
public class Demo1 {
public static void main(String[] args) {
ListNode listNode2 = new ListNode(1, null);
ListNode listNode3 = new ListNode(2, listNode2);
ListNode listNode4 = new ListNode(2, listNode3);
ListNode listNode5 = new ListNode(1, listNode4);
System.out.println(Solution.isPalindrome(listNode5));
}
}
234
最新推荐文章于 2024-06-16 09:46:44 发布