给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。
需求
- 判断是不是回文链表
- 返回布尔值
实现
- 转数组
- 遍历
便利签
- 简单题
- 自己做的
- 虽然简单但自己也很棒
代码
import java.util.ArrayList;
import java.util.List;
class Solution {
public boolean isPalindrome(ListNode head) {
// 特殊情况判断
if (head == null || head.next == null) return true;
//创建链表用于存储数据
List<Integer> n = new ArrayList<>();
//遍历然后把数据存储进去
while (head != null) {
// 为什么用这个,因为题目给了配置环境的,在链表里面,所以用这个
n.add (head.val);
// 移动指针
head = head.next;
}
// 一个简单的判断式,七七偷懒不逐行解释了
for (int i = 0;i < n.size() / 2;i++) {
if (n.get(i) != n.get(n.size() - 1 - i))
return false;
}
// 全部结束。如果不是错的就是对的
return true;
}
}
