博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode]234. Palindrome Linked List
阅读量:2786 次
发布时间:2019-05-13

本文共 1094 字,大约阅读时间需要 3 分钟。

对input进行修改,后半段反转。但是反转链表还是不熟啊,这怎么行!!!反转之后的尾节点的next为null。剩下看注释

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */public class Solution {    public boolean isPalindrome(ListNode head) {        ListNode fast = head;        ListNode slow = head;        while (fast != null && fast.next != null) {            fast = fast.next.next;            slow = slow.next;        }        // 总结点数为奇数,为满足下方while判断,slow要后移一位        if (fast != null) {            slow = slow.next;        }        ListNode tail = reverse(slow);        // 不能是head != null,因为前半段的尾节点未置为空        while (tail != null) {            if (tail.val != head.val) {                return false;            }            tail = tail.next;            head = head.next;        }        return true;    }    private ListNode reverse(ListNode head) {        ListNode pre = null;        while (head != null) {            ListNode next = head.next;            head.next = pre;            pre = head;            head = next;        }        return pre;    }}

转载地址:http://tvhld.baihongyu.com/

你可能感兴趣的文章
内核驱动深入班
查看>>
韦的视频列表
查看>>
waiting for transaction lock on /var/lib/rpm/__db.000
查看>>
shell-if
查看>>
shell-for
查看>>
shell-while
查看>>
shell-util
查看>>
系统编程之文件编程file_cp
查看>>
指针 数组 引用
查看>>
什么是可重入函数和不可重入函数
查看>>
《新人怎么学嵌入式》
查看>>
Linux本地root密码破解方法
查看>>
Ubuntu//Fedora 老版本下载(Old Releases)
查看>>
Android学习之路之ListView的使用
查看>>
Android学习之路之startActivityForResult和setResult的使用
查看>>
Android学习之路之数据的使用(一)
查看>>
Android学习之路之数据的使用(二)
查看>>
功能使用来源(持续更新)
查看>>
NPC问题
查看>>
搬家记
查看>>