- 浏览: 183677 次
- 性别:
- 来自: 济南
文章分类
最新评论
Given a singly linked list, determine if it is a palindrome.
Follow up:
Could you do it in O(n) time and O(1) space?
判断一个单向链表是否为回文链表,要求时间复杂度为O(n),空间复杂度为O(1)。我们可以先用快慢指针找到中间的节点,然后将后半部分链表反转,然后以前半部分的链表进行比较,如果相同就返回true,如果不同就返回false。代码如下:
Follow up:
Could you do it in O(n) time and O(1) space?
判断一个单向链表是否为回文链表,要求时间复杂度为O(n),空间复杂度为O(1)。我们可以先用快慢指针找到中间的节点,然后将后半部分链表反转,然后以前半部分的链表进行比较,如果相同就返回true,如果不同就返回false。代码如下:
/** * 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) { if(head == null || head.next == null) return true; ListNode fast = head; ListNode slow = head; while(fast.next != null && fast.next.next != null) { fast = fast.next.next; slow = slow.next; } ListNode newHead = slow.next; slow.next = null; newHead = invert(newHead); while(newHead != null) { if(head.val != newHead.val) return false; head = head.next; newHead = newHead.next; } return true; } public ListNode invert(ListNode head) { ListNode pre = null; ListNode tem = null; while(head != null) { tem = head.next; head.next = pre; pre = head; head = tem; } return pre; } }
发表评论
-
498. Diagonal Traverse
2019-11-15 13:52 265Given a matrix of M x N eleme ... -
496 Next Greater Element I
2019-11-14 13:50 267You are given two arrays (witho ... -
Word Break II
2016-03-09 03:15 384Given a string s and a dictiona ... -
Insert Interval
2016-03-08 02:11 374Given a set of non-overlapping ... -
Merge Intervals
2016-03-07 05:25 499Given a collection of intervals ... -
Merge k Sorted Lists
2016-03-07 04:03 563Merge k sorted linked lists and ... -
Multiply Strings
2016-03-06 07:27 475Given two numbers represented a ... -
N-Queens II
2016-03-06 03:06 664Follow up for N-Queens problem. ... -
N-Queens
2016-03-06 02:47 469The n-queens puzzle is the prob ... -
First Missing Positive
2016-03-05 03:09 430Given an unsorted integer array ... -
Spiral Matrix
2016-03-04 03:39 575Given a matrix of m x n element ... -
Trapping Rain Water
2016-03-04 02:54 581Given n non-negative integers r ... -
Repeated DNA Sequences
2016-03-03 03:10 426All DNA is composed of a series ... -
Increasing Triplet Subsequence
2016-03-02 02:48 898Given an unsorted array return ... -
Maximum Product of Word Lengths
2016-03-02 01:56 930Given a string array words, fin ... -
LRU Cache
2016-02-29 10:37 602Design and implement a data str ... -
Super Ugly Number
2016-02-29 07:07 675Write a program to find the nth ... -
Longest Increasing Path in a Matrix
2016-02-29 05:56 845Given an integer matrix, find t ... -
Coin Change
2016-02-29 04:39 783You are given coins of differen ... -
Minimum Height Trees
2016-02-29 04:11 706For a undirected graph with tre ...
相关推荐
方法1 思路:将链表中的元素都保存list中,并判断这个list和反转后的list,是否相同,如果相同,则回文;否则,则不回文。...# Definition for singly-linked list. # class ListNode(object): # def __i
python python_leetcode题解之234_Palindrome_Linked_List.py
leetcode 2 sum c LeetCode 帮助文档 帮助文档存放在Help文件夹下。 文件名 文件描述 ...complexitypython.txt Python的一些常规操作的复杂度统计 ...Linked List(链表) ...List ...Linked ...Palindrome Linked List
19. **Palindrome Linked List** 和 **Palindrome Number**:判断链表或数字是否为回文。链表可以用双指针,数字可以转化为字符串后再判断。 20. **Plus One**:给数组中的所有数字加一。理解进位的概念,从数组...
Palindrome linked list Linked List Cycle trees Convert Sorted Array to Binary Search Tree string and search First Bad Version Dynamic Programing *** Climbing Stairs Set Matrix Zeroes API System....
* [Linked List](https://github.com/kamyu104/LeetCode#linked-list) * [Stack](https://github.com/kamyu104/LeetCode#stack) * [Queue](https://github.com/kamyu104/LeetCode#queue) * [Heap]...
Palindrome Linked List LL中的插入排序 使用额外的缓冲区从未排序的链表中删除重复项 细绳 确定字符串是否包含所有唯一字符 (CTCI) 在不使用额外缓冲区的情况下删除字符串中的重复字符 (CTCI) 检查 2 个字符串是否...
[回文链表](md/Palindrome Linked List.md) - 2015-10-06 [数字一](md/数字一.md) - 2015-10-06 [使用栈实现队列](md/使用栈实现队列.md) - 2015-10-06 [BST 中的第 K 个最小元素](md/BST.md 中的第 K 个最小元素) -...
例如,“回文链表”(Palindrome Linked List)要求判断一个链表是否为回文结构,这就需要对链表的遍历和反转有深刻理解。 困难难度的题目通常需要开发者具备扎实的算法基础和创新思维。这些题目往往没有明显的解决...
Given a string, find the length of the longest substring without repeating characters. Examples: Given "abcabcbb", the answer is "abc", which the length is 3. Given "bbbbb", the answer is "b", with...
leetcode中325题python leetcode 以 参考 和 Hash相关 1_两数之和 387_字符串中的第一个唯一字符 链表操作 2 ...删除链表的倒数第N个节点 ...remove-duplicates-from-sorted-list ...palindrome-linked-list 双指针遍历/滑动
linked-list-cycle-ii 链表 linked-list-cycle 链表 copy-list-with-random-pointer 复杂度 single-number 动态规划 candy 贪心 gas-station 动态规划 palindrome-partitioning-ii 动态规划 triangle 树 sum-root-to...
- **Flatten Binary Tree to Linked List**:将二叉树展平为单链表。 - **Validate Binary Search Tree**:验证一个二叉树是否为二叉搜索树。 - **Recover Binary Search Tree**:恢复二叉搜索树中的两个错误节点...
霍尔伯顿学校访谈 面试准备培训模块。... 0x05-linked_list_palindrome 检查单链表是否是回文( C ) 0x06-log_parsing 编写脚本,逐行读取stdin并计算metrics ( Python ) 0x07-linked_list_cycle
Palindrome Number C++ 2016/4/26 Easy 044 Wildcard Matching Python 2016/4/1 Hard 051 N-Queens C++ 2016/5/18 Hard 092 Reverse Linked List II Python 2017/11/28 Medium 095 Unique Binary Search Trees ...
2. 链表(Linked List): 链表是另一种数据结构,它由一系列节点组成,每个节点包含数据和指向下一个节点的指针。虽然在提供的代码中没有直接使用链表,但链表是实现栈和队列的基础。 3. 图(Graph): 图是由顶点...
6. **环形链表**(Linked List Cycle II) - 知识点:链表,快慢指针法(Floyd判圈法) - 解题方法:设置两个指针,一个速度慢,每次移动一步,一个速度快,每次移动两步。如果链表存在环,它们会在环内相遇。 7....
234.Palindrome 链表: | 725. 分部分拆分链表: | 328.奇偶链表:| 哈希表: 问题及解决方法: 1.二和:| 594.最长和谐子序列:| 128.最长连续序列:| 数组和矩阵 问题及解决方法: 283.移零:| 566.重塑矩阵: | ...
#### 八、Reverse Linked List - **知识点:**链表操作、迭代。 - **题目描述:**反转一个单链表。 - **应用场景:**链表的基本操作之一,常用于链表的排序、合并等高级操作。 #### 九、Palindrome Permutation - *...