ques: 判断一个链表是否回文 Could you do it in O(n) time and O(1) space?

method:先将链表分为两部分,将后半部分反转,最后从前往后判断是否相等。

topic: 链表,链表反转

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */  class Solution {
public:bool isPalindrome(ListNode *head) { //input check  abcba abccba  if(head == NULL || (head&&head->next==NULL)) return true;  ListNode *middle = partition(head);  middle = reverse(middle);  while(head!=NULL && middle!=NULL) {  if(head->val != middle->val) return false;  head = head->next;  middle = middle->next;  }  return true;  }
private: ListNode* partition(ListNode *head) {  ListNode* p = head;  while(p&&p->next!=NULL && p->next->next!=NULL) {  p = p->next->next;  head = head->next;  }  p = head->next;  head->next = NULL;  return p;  }
private: ListNode* reverse(ListNode *head) {  if(head==NULL || head->next==NULL) return head;  ListNode* pre = head;  ListNode* cur = head->next;  pre->next = NULL;  ListNode* nxt = NULL;  while(cur!=NULL) {  nxt = cur->next;  cur->next = pre;  pre = cur;  cur = nxt;  }  return pre;  }
};

转载于:https://www.cnblogs.com/sherry-yang/p/8245187.html

【easy】234. Palindrome Linked List相关推荐

  1. 【LeetCode】234. Palindrome Linked List

    题目 Given a singly linked list, determine if it is a palindrome. Follow up: Could you do it in O(n) t ...

  2. 【easy】206. Reverse Linked List 链表反转

    链表反转,一发成功~ /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* Li ...

  3. 【回文串7】LeetCode 234. Palindrome Linked List

    LeetCode 234. Palindrome Linked List Solution1:我的答案 一遍过,哈哈哈! /*** Definition for singly-linked list. ...

  4. 【leetcode】132. Palindrome Partitioning II

    题目如下: 解题思路:本题是[leetcode]131. Palindrome Partitioning的升级版,要求的是求出最小cuts,如果用[leetcode]131. Palindrome P ...

  5. 170. Two Sum III - Data structure design【easy】

    170. Two Sum III - Data structure design[easy] Design and implement a TwoSum class. It should suppor ...

  6. 【LeetCode】【HOT】234. 回文链表(存入数组)

    [LeetCode][HOT]234. 回文链表 文章目录 [LeetCode][HOT]234. 回文链表 package hot;import java.util.ArrayList; impor ...

  7. 26. Remove Duplicates from Sorted Array【easy】

    26. Remove Duplicates from Sorted Array[easy] Given a sorted array, remove the duplicates in place s ...

  8. 【TensorRT】TensorRT was linked against cudnn 8.6.0 but loaded cudnn 8.3.2

    [TensorRT]TensorRT was linked against cudnn 8.6.0 but loaded cudnn 8.3.2 1 电脑环境 2 问题描述 3 直接原因 4 解决办法 ...

  9. 234. Palindrome Linked List - Easy

    Given a singly linked list, determine if it is a palindrome. Example 1: Input: 1->2 Output: false ...

最新文章

  1. 1. 编程规范和编程安全指南--python
  2. IT项目管理总结:第五章 项目范围管理
  3. wxWidgets:wxValidator概述
  4. java项目部署到linux上面,把我的Java项目部署到Linux系统
  5. html引入百度地图报错,vue引入百度地图BMapGL,或者其他个性化地图
  6. 中html倒入css那么套路,CSS常用套路
  7. 解决word、excel、ppt文件图标是空白的问题
  8. 对Windows学习的总结
  9. Atitit.java 虚拟机的构成 与指令分类 与 指令集合 以及字节码查看工具javjap
  10. 美国的卫星导航系统服务器,中国的北斗卫星和美国的gps到底哪个更厉害?
  11. python爬虫扇贝单词库
  12. c++primer学习笔记
  13. 昨天搭完梯子之后就打不开12306查询的网页了
  14. 移动小人Python程序
  15. Python 基础torch.stack(tensors: Union[Tuple[Tensor, ...], List[Tensor]], dim: _int=0, *, out: Option)
  16. JAVA日志技术 Logback
  17. 模拟UNIX/Linux 文件系统 c语言
  18. Chrom/Edge浏览器将网页另存为图片
  19. 说说@Transactional(readOnly = true),和mysql事务隔离级别;
  20. Vue.js最最最基础入门的笔记整理

热门文章

  1. getBoundingClientRect说明
  2. Python - 排序( 插入, 冒泡, 快速, 二分 )
  3. 最近用.NET实现DHT爬虫,全.NET实现
  4. 设计模式-发布订阅模式
  5. Suricata的初始化脚本
  6. 2017视频监控行业应用趋势与市场发展分析
  7. SQL SERVER2000将多行查询结果拼接到一行数据及函数的创建
  8. android抓包工具——使用fiddler4在安卓手机抓包
  9. DEV GridView嵌套
  10. Java设计模式6:策略模式