面试必考真题-算法篇 牛客网
链表 双指针
题目描述
给定一个链表,请判断该链表是否为回文结构。
题目分析
利用双向队列。
首先将链表全部加入队列中,之后,将链表头尾同时出队,如果不相等,则不是回文结构。
下面是Java代码
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 == null || head.next == null){
return false;
}
Deque<Integer> deque = new ArrayDeque<>();
while(head!=null){
deque.addLast(head.val);
head = head.next;
}
while(deque.size()>1){
if(!deque.pollFirst().equals(deque.pollLast())){
return false;
}
}
return true;
}
}