题目连接:BM13 判定链表是否回文结构
题目描述
思路
由于链表是随机存储结构,若想要比较头部尾部的数据,首先转换为List集合形式。
步骤
- 首先定义一个List列表集合。
- 遍历链表元素,并把数值转移到list集合中。
- 在list集合中查找比较头尾的数值,判定链表是否回文结构。
- 代码如下:
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
if (head.next == null) {
return true;
}
List<Integer> nums = new ArrayList<>();
//链表转换为list
while (head != null) {
nums.add(head.val);
head = head.next;
}
int i = 0;
int j = nums.size() - 1;
while (i < j) {
//不等于则返回null
if (!nums.get(i).equals(nums.get(j))) {
return false;
}
++i;
--j;
}
return true;
}
}