面试中常见链表问题13:回文链表
来源:互联网 发布:linux内核经典书籍 编辑:程序博客网 时间:2024/06/14 02:43
给定一个单链表,判断该链表是否为回文序列。要求时间复杂度为o(n),空间复杂度为o(1)。 解析:(1)把链表分割成前后两部分。(2)反转前半部分链表。(3)判断前后两部分链表是否相等。bool isPalindrome(ListNode* head) {if (head == NULL || head->next == NULL)return true;ListNode *pNewHead = new ListNode(INT_MAX);//pNewHead->next = head;ListNode *slow = head;ListNode *fast = head;while (fast != NULL && fast->next != NULL){ListNode *tmp = slow;slow = slow->next;fast = fast->next->next;tmp->next = pNewHead->next;pNewHead->next = tmp;}ListNode *p1 = slow->next;if (fast == NULL)p1 = slow;ListNode *p2 = pNewHead->next;while (p1 != NULL && p2 != NULL){if (p1->val != p2->val)return false;p1 = p1->next;p2 = p2->next;}return true;}
0 0
- 面试中常见链表问题13:回文链表
- 面试中常见链表问题_world
- 链表常见面试问题
- 面试中常见链表问题3:旋转链表
- 面试中常见链表问题6:划分链表
- 面试中常见链表问题8:重排链表
- 面试中常见链表问题12:单链表反转(递归)
- 面试中常见的链表题目
- 面试中常见的链表题目
- 面试中常见链表题型整理
- 面试中常见的链表题目
- 面试中常见的链表题目
- 转 面试中常见链表题目
- 《程序员面试金典》回文链表
- 回文链表之程序员面试经典
- 程序员面试经典--链表回文判断
- 【程序员面试金典】回文链表
- 面试中常见链表问题1:合并两个有序链表
- Ubuntu安装KVM
- Hibernate中的Entity类之间的继承关系之二SINGLE_TABLE
- windows下安装numpy,scipy遇到的问题总结
- javascript 判断数组中的重复内容的两种方法(修复BUG) by FungLeo
- CATalyst——针对末级缓存侧信道攻击的防御技术
- 面试中常见链表问题13:回文链表
- 15 个 Android 通用流行框架大全
- 链表面试题之合并有序的两个线性表-递归和非递归的方法
- 将List中的对象按对象某一属性的大小来排序
- serverlet 分文件处理
- 乐学成语(HappyIdiom)
- 大数据到底是啥?到底要怎么学?
- Java线程之FutureTask与Future浅析
- C++中变量的声明和定义的详解