1.简述: 描述 给定一个链表,请判断该链表是否为回文结构。 回文是指该字符串正序逆序完全一致。 数据范围:链表节点数 ,链表中每个节点的值满足 示例1 输入: {1} 返回值: tr
1.简述:
描述给定一个链表,请判断该链表是否为回文结构。
回文是指该字符串正序逆序完全一致。
数据范围: 链表节点数 ,链表中每个节点的值满足
示例1输入:
{1}返回值:
true示例2输入:
{2,1}返回值:
false说明:
2->1示例3输入:
{1,2,2,1}返回值:
true说明:
1->2->2->12.代码实现:
import java.util.*;/*
* public class ListNode {
* int val;
* ListNode next = null;
* }
*/
public class Solution {
/**
*
* @param head ListNode类 the head
* @return bool布尔型
*/
public boolean isPail (ListNode head) {
// write code here
// n==1,返回true
if (head.next == null){
return true;
}
List<Integer> nums = new ArrayList<Integer>();
// 将链表转换成list
while(head!=null){
nums.add(head.val);
head = head.next;
}
int i = 0;
int j = nums.size()-1;
while(i<j){
// 不等则返回false
// 这边有一个坑,如果不适用equals而使用!=的话,在牛客上对于有负数的测试用例可能会无法通过。
if (!nums.get(i).equals(nums.get(j))){
return false;
}
++i;
--j;
}
return true;
}
}