/**
* 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 node1)
{
ListNode pre = node1;
int len = length(node1);
int []arr = new int[len];
int []arr1 = new int[len];
for (int i = 0; i < len; i++) {
arr[i] = pre.val;
pre = pre.next;
}
ListNode temp = node1;
ListNode text = reverse(node1);
for (int i = 0; i < len; i++) {
arr1[i] = text.val;
text = text.next;
}
int count = 1;
for (int i = 0; i < len; i++) {
if (arr[i] != arr1[i]){
return false;
}
}
return true;
}
public static int length(ListNode head) {
int len = 0;
while (head != null) {
len++;
head = head.next;
}
return len;
}
public static ListNode reverse(ListNode head) {
ListNode prev = null;
while (head != null) {
ListNode next = head.next;
head.next = prev;
prev = head;
head = next;
}
return prev;
}
}
回文链表leetcode
最新推荐文章于 2024-08-02 12:48:49 发布