Java 【力扣234】判断回文链表

简介: Java 【力扣234】判断回文链表

 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false

image.gif编辑

代码如下:

/**
 * 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) {
        ListNode newHead=new ListNode();
        newHead=reverseList(head);
        while (head!=null){
            if(newHead.val!=head.val){
                return false;
            }else {
                head=head.next;
                newHead=newHead.next;
            }
        }
        return true;
    }
    //反转链表
    public ListNode reverseList(ListNode head) {
        if(head==null|| head.next==null){
            return head;
        }
        ListNode dummyHead=new ListNode(-1);
        while (head!=null){
            ListNode node=new ListNode(head.val);
            node.next=dummyHead.next;
            dummyHead.next=node;
            head=head.next;
        }
        return dummyHead.next;
    }
}

image.gif

实现结果:

image.gif编辑


相关文章
|
算法 Go
【LeetCode 热题100】23:合并 K 个升序链表(详细解析)(Go语言版)
本文详细解析了 LeetCode 热题 23——合并 K 个升序链表的两种解法:优先队列(最小堆)和分治合并。题目要求将多个已排序链表合并为一个升序链表。最小堆方法通过维护节点优先级快速选择最小值,;分治合并则采用归并思想两两合并链表。文章提供了 Go 语言实现代码,并对比分析两种方法的适用场景,帮助读者深入理解链表操作与算法设计。
483 10
【力扣】-- 移除链表元素
【力扣】-- 移除链表元素
235 1
|
索引
力扣(LeetCode)数据结构练习题(3)------链表
力扣(LeetCode)数据结构练习题(3)------链表
359 0
LeetCode第二十四题(两两交换链表中的节点)
这篇文章介绍了LeetCode第24题的解法,即如何通过使用三个指针(preNode, curNode, curNextNode)来两两交换链表中的节点,并提供了详细的代码实现。
224 0
LeetCode第二十四题(两两交换链表中的节点)
Leetcode第21题(合并两个有序链表)
这篇文章介绍了如何使用非递归和递归方法解决LeetCode第21题,即合并两个有序链表的问题。
280 0
Leetcode第21题(合并两个有序链表)
Leetcode第十九题(删除链表的倒数第N个节点)
LeetCode第19题要求删除链表的倒数第N个节点,可以通过快慢指针法在一次遍历中实现。
292 0
Leetcode第十九题(删除链表的倒数第N个节点)
【LeetCode 10】142. 环形链表 II
【LeetCode 10】142. 环形链表 II
187 0
【Java数据结构】经典链表OJ题——超详细做题笔记及心得(二)
【Java数据结构】经典链表OJ题——超详细做题笔记及心得(每行代码都有注释嗷)
【Java数据结构】经典链表OJ题——超详细做题笔记及心得(二)
【Java数据结构】经典链表OJ题——超详细做题笔记及心得(一)
【Java数据结构】经典链表OJ题——超详细做题笔记及心得(每行代码都有注释嗷)
【Java数据结构】经典链表OJ题——超详细做题笔记及心得(一)
|
8月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
405 1