当前位置: 首页 > news >正文

天津 做网站建网站程序下载

天津 做网站,建网站程序下载,淘宝店铺推广渠道有哪些,wordpress数据库配置文件判断一个链表是否为回文结构 题目链接:判断一个链表是否为回文结构 解题思路1:借助数组 遍历链表将值都放在数组中,再遍历数组元素,判断该数组是否为一个回文结构 代码如下: bool isPail(ListNode* head) {ListNod…

判断一个链表是否为回文结构

题目链接:判断一个链表是否为回文结构

解题思路1:借助数组

遍历链表将值都放在数组中,再遍历数组元素,判断该数组是否为一个回文结构

代码如下:

    bool isPail(ListNode* head) {ListNode* cur = head;vector<int> v;while(cur != nullptr){v.push_back(cur->val);cur = cur->next;}for(int i=0,j=v.size()-1; i<j; ++i,--j){if(v[i] != v[j]){return false;}}return true;}

解题思路2:反转部分链表进行对比

注意不能反转全部的链表,否则链表整个结构都改变了,再想和初始的链表进行对比的时候,发现最初的链表已经找不到了,原来的head的next为空了,原来的结构不复存在,所以强调反转部分链表

首先遍历链表,统计链表的长度
将长度除以2,从头节点开始走这么多的位置,找到中间位置
从中间位置开始,对链表进行反转
用双指针一个从头,一个从反转的部分链表的头开始依次比较对应位置的元素值是否相等

代码如下:

    ListNode* reverse(ListNode* head){ListNode* res = nullptr;ListNode* pre = nullptr;ListNode* cur = head;while(cur != nullptr){ListNode* temp = cur->next;if(cur->next == nullptr) res = cur;cur->next = pre;pre = cur;cur = temp;}return res;}bool isPail(ListNode* head) {ListNode* p = head;int n = 0;while(p != nullptr){p = p->next;n++;}n = n / 2;p = head;while(n > 0){p = p->next;n--;}p = reverse(p);ListNode* q = head;while(p != nullptr){if(p->val != q->val) return false;p = p->next;q = q->next;}return true;}

解题思路3:利用快慢指针找中点

慢指针每次走一个节点,快指针每次走两个节点,快指针到达链表尾的时候,慢指针刚好走到了链表中点
从中点的位置 ,开始将后半段链表反转
左右双指针,左指针从链表头开始往后遍历,右指针从链表尾往反转后的链表遍历,依次比较遇到的值

代码如下:

    ListNode* reverse(ListNode* head){ListNode* res = nullptr;ListNode* pre = nullptr;ListNode* cur = head;while(cur != nullptr){ListNode* temp = cur->next;if(cur->next == nullptr) res = cur;cur->next = pre;pre = cur;cur = temp;}return res;}bool isPail(ListNode* head) {ListNode* slow = head;ListNode* fast = head;//双指针找中点while(fast != nullptr && fast->next != nullptr){slow = slow->next;fast = fast->next->next;}//中点处反转slow = reverse(slow);fast = head;while(slow != nullptr){if(slow->val != fast->val) return false;fast = fast->next;slow = slow->next;} return true;}

解题思路4:栈逆序

将元素放到栈中,再依次取出栈顶元素和链表进行对比,如果都相同,那该链表就是回文链表

    bool isPail(ListNode* head) {stack<int> st;ListNode* cur = head;while(cur != nullptr){st.push(cur->val);cur = cur->next;}cur = head;while(!st.empty()){if(cur->val != st.top()) return false;st.pop();cur = cur->next;}return true;}
http://www.yayakq.cn/news/828182/

相关文章:

  • 网站内容维护秦皇岛北戴河
  • 精品建设课程网站做学校网站会下线吗
  • 嘉鱼网站建设桂城网站制作专业公司
  • 怎样做投资理财网站北京专业英文网站建设
  • google网站增加关键词网站建设 信科网络
  • 网站建设海报设计电子商务营销的发展现状
  • 厦门做网站培训本机可以做网站的服务器
  • 马鞍山 网站建设 有限公司建设银行个人网银没有弹出网站
  • 静态网站制作流程清河做网站报价
  • 合肥专业网站制wordpress 图片备份
  • 求职招聘网站开发wordpress文章留言
  • 北京免费网站制作电子商务网站建设与管理课后心得
  • 丹东有做公司网站的吗企业网站seo报价
  • 网站建设公司企业模板下载郑州旅游网站建设
  • 中国各大网站名称提高网站打开速度
  • 泉州网站设计制作北京做网站建设
  • 手机网站开发服务施工企业杜绝三违行为工作措施
  • 速贝网站友情链接怎么做多个图表统计的网站怎么做
  • 宁波网站关键词优化代码如何查看一个网站是什么程序cms做的
  • 数字营销的概念优化型网站是什么意思
  • 网站推广官方平台山东东平建设工程招标网站
  • 学校网站建设论文图列说明网站开发的流程
  • 国外网站设计欣赏怎么做论坛的网站
  • 如何改进网站域名信息备案管理系统查询
  • 网站设计制作一条龙淄博英文网站建设专业
  • 查询域名官网的是那个网站吗做网站贴吧
  • 全flash网站制作教程网站建设行业分析报告
  • 怎么看网站是哪里做的深圳百度seo怎么做
  • wordpress导航设置进一步优化供给推动消费平稳增长
  • 网站色彩心理ps网站建设设计