LeetCode 回文链表

这里有用到关于List集合的知识,可看上一篇Java 数组与集合(List, Set, Map)获取长度与遍历操作

解题方法:先将链表存储到动态数组中,然后使用两个指针一头一尾进行遍历操作进行比较

注意:使用equals判断相等,因为链表使用的是Integer类型

java 复制代码
/**
 * 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 head) {
        //将链表的值复制到数组中
        List<Integer> array=new ArrayList<Integer>();
        ListNode p=head;
        for(;p!=null;p=p.next){
            array.add(p.val);
        }
        // 双指针法判断
        int first=0;
        int last=array.size()-1;
        while(first<=last){
            if(!array.get(first).equals(array.get(last))){
                return false;
            }
            first++;
            last--;
        }
        return true;

        
    }
}
相关推荐
Howrun7774 小时前
C++_bind_可调用对象转化器
开发语言·c++·算法
EnglishJun5 小时前
数据结构的学习(一)---单向链表
数据结构·学习·链表
有一个好名字5 小时前
力扣-迷宫中离入口最近的出口
算法·leetcode·职场和发展
乌萨奇也要立志学C++5 小时前
【洛谷】剪枝与优化 剪枝策略实战解析:数的划分与小猫爬山
算法·剪枝
踩坑记录5 小时前
leetcode hot100 226. 翻转二叉树 easy 递归 层序遍历 BFS
算法·leetcode·宽度优先
历程里程碑5 小时前
滑动窗口----滑动窗口最大值
javascript·数据结构·python·算法·排序算法·哈希算法·散列表
2301_822382765 小时前
嵌入式C++实时内核
开发语言·c++·算法
wWYy.5 小时前
malloc底层实现
算法
青桔柠薯片5 小时前
数据结构:双向循环链表,栈
数据结构·链表
Remember_9935 小时前
Java 工厂方法模式:解耦对象创建的优雅方案
java·开发语言·python·算法·工厂方法模式