检查链表是否为回文
来源:互联网 发布:淘宝旺旺买家 编辑:程序博客网 时间:2024/06/05 06:48
题目:编写一个函数,检查链表是否为回文。
解法一:根据回文的定义,正向反向读取时一致,即为回文,因此可以将原链表反转再与原链表比较,完全一样就是回文。算法比较简单就不贴代码了。
解法二:如果链表是回文,那么前半部分和后半部分一样,但是顺序相反。单链表没有前向指针,所以依靠指针只能在一个方向上比较。如果将链表的前半部分反序,就可以和后半部分比较了,反序可以用到数据结构栈。
bool IsPalindromicList(ListNode* pHead) {ListNode *fastPointer, *slowPointer;fastPointer = slowPointer = pHead;stack<ListNode*> s;while(fastPointer != NULL && fastPointer->m_pNext != NULL){s.push(slowPointer);slowPointer = slowPointer->m_pNext;fastPointer = fastPointer->m_pNext->m_pNext;}//奇数个结点,跳过中间结点if(fastPointer != NULL)slowPointer = slowPointer->m_pNext;while(slowPointer != NULL){if(slowPointer->m_nValue != s.top()->m_nValue)return false;slowPointer = slowPointer->m_pNext;s.pop();}return true;}
0 0
- 检查链表是否为回文
- 检查链表是否为回文
- 检查链表是否为回文
- 《CTCI》2.7 检查链表是否为回文
- 【Java】编写函数,检查链表是否为回文
- 面试13之检查链表是否为回文
- 检查链表是否为回文 python实现
- 检查链表是否是回文
- LinkLists 检查一个链表是否为回文 Check if a linked list is palindrome @CareerCup
- 9.2链表(七)——检查链表是否为回文
- 程序员面试金典: 9.2链表 2.7检查链表是否为回文
- 检查字符串是否为回文字符串
- CCI 2.7 链表是否为回文
- 检查单链表是否为循环链表
- FCC--Check for Palindromes(检查字符串是否为回文)
- [一天一项目]检查字符串是否为回文
- 检查输入消息是否回文
- leetcode系列(16)判断链表是否为回文
- c++异常处理小结
- compare与compareTo
- spring笔记——Ioc控制反转
- CodeForces 166E Tetrahedron
- git常用命令
- 检查链表是否为回文
- 复习(数据结构):栈:c语言:数组
- RedHat6.x伪分布安装Greenplum
- Android AsyncTask详细介绍
- iOS标准时间与时间戳相互转换
- 数据库知识
- Android产品研发(二十三)-->Android中保存静态秘钥实践
- 洪水_codevs3411_bfs
- 安卓多线程总结