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

未央免费做网站百度广告投放平台官网

未央免费做网站,百度广告投放平台官网,区块链开发工程师招聘,哪些网站做渣土车租恁回文链表判定 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 方法一:栈反转对比法 解题思路:找到中间节点后用栈辅助反转对比 解题方法&#xff1…

回文链表判定

给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。

方法一:栈反转对比法

解题思路:找到中间节点后用栈辅助反转对比
解题方法:
找到链表的中间节点并判断奇数还是偶数
头结点到中间节点前的节点入栈,偶数从中间节点开始和栈内元素进行比较;
奇数从中间节点后面的节点开始和栈内元素进行比较;
若比较到最后一个节点都相等该链表为回文链表(栈空或比较到最后一个节点)
时间复杂度:O(n)
空间复杂度:O(n)

import java.util.List;
import java.util.Stack;import javax.management.ListenerNotFoundException;/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public static boolean isPalindrome(ListNode head) {/*** head -> 1 -> 2 -> 2 -> 1 -> null* head -> 1 -> 2 -> 1 -> null* 找到链表的中间节点并判断奇数还是偶数* 头结点到中间节点的节点入栈,偶数从中间节点开始和栈内元素进行比较;* 奇数从中间节点后面的节点开始和栈内元素进行比较;* 若比较到最后一个节点都相当该链表为回文链表(栈空或比较到最后一个节点)*/if(head == null){return false;}ListNode dummy = new ListNode(-1);dummy.next=head;ListNode slow=dummy;ListNode fast=dummy;ListNode midNode=null;Boolean isEvent=true;while (fast.next!=null){slow=slow.next;if(fast.next.next!=null) {fast = fast.next.next;} else{fast=fast.next;isEvent=false;}}midNode = isEvent ? slow.next : slow;Stack<ListNode> stack=new Stack<>();ListNode p=dummy.next;while(p!=midNode){stack.push(p);p=p.next;}ListNode m=isEvent?midNode:midNode.next;while(m!=null){ListNode tmp=stack.pop();if(m.val!=tmp.val){return false;}m=m.next;}return true;}
}

方法二:链自反转对比法

解题思路:找到中间节点后用栈辅助反转对比
解题方法:
找到链表的中间节点并判断奇数还是偶数
继续利用双指针反转中间节点前的链表。
偶数从中间节点开始和反转链进行比较;
奇数从中间节点后面的节点开始和反转链进行比较;
若比较到最后一个节点都相等该链表为回文链表(栈空或比较到最后一个节点)
时间复杂度:O(n)
空间复杂度:O(1)

   public static boolean isPalindrome(ListNode head) {/*** [1,0,1]* head -> 1 -> 2 -> 2 -> 1 -> null* head -> 1 -> 2 -> 1 -> null找到链表的中间节点并判断奇数还是偶数继续利用头插法反转中间节点前的链表。偶数从中间节点开始和反转链进行比较;奇数从中间节点后面的节点开始和反转链进行比较;若比较到最后一个节点都相等该链表为回文链表(栈空或比较到最后一个节点)*/if(head == null){return false;}ListNode dummy = new ListNode(-1);dummy.next=head;ListNode slow=dummy;ListNode fast=dummy;ListNode midNode=null;Boolean isEvent=true;while (fast.next!=null){slow=slow.next;if(fast.next.next!=null) {fast = fast.next.next;} else{fast=fast.next;isEvent=false;}}midNode = isEvent ? slow.next : slow;ListNode p = head;head=null;while (p!=midNode){ListNode tmp=p.next;p.next=head;head=p;p=tmp;}//偶数从中间节点开始和反转链进行比较ListNode m = isEvent ? midNode : midNode.next;boolean isPalindrome=true;p=head;while (isPalindrome && p!=null){if(p.val!=m.val){isPalindrome=false;}p=p.next;m=m.next;}// 还原链表p = head;head=midNode;while (p!=null){ListNode tmp=p.next;p.next=head;head=p;p=tmp;}return  isPalindrome;}
http://www.shuangfujiaoyu.com/news/26832.html

相关文章:

  • 网页设计素材网站百度广告销售
  • 北京品牌建设网站公司线下推广方法及策略
  • js怎么做打开网站就复制内容广州排名推广
  • 国外网站源代码关键词汇总
  • 全国网站排名最火网站排名
  • 河池做网站百度在线客服中心
  • 临沂小程序开发公司哪家好seo竞争对手分析
  • 网站首页模板免费下载项目外包平台
  • 佛山网站建设 奇锐科技百度首页清爽版
  • dede电影网站模板世界500强企业
  • 镇江网站建设推广公司做seo推广公司
  • 酒店招聘做的好的网站软文网站发布平台
  • 酒店网站建设深圳seo网站推广方案
  • 网站微信认证费用多少杭州最专业的seo公司
  • 单页网站与传统网站的区别广州seo外包多少钱
  • 网站制作设计seo招聘信息
  • 重庆秀山网站建设怎样推广自己的产品
  • 做二手网站赚钱不免费收录网站
  • 哪些网站可以做企业推广荥阳seo推广
  • 建设人才服务信息网国家网站么谷歌seo靠谱吗
  • 网站建设好怎么优化网站seo公司哪家好
  • 杭州投资公司自适应网站seo 技术优化
  • 郑州商城网站建设站长收录
  • 备案后网站可以改名吗西安 做网站
  • 西安小程序定制野狼seo团队
  • 自己做的网站找不到了短视频询盘获客系统
  • b2b网站如何做北京seo网站设计
  • flash网站有哪些怎么在百度上投放广告
  • 简述网站开发的步骤企业模板建站
  • 简述网页建站流程简述seo的概念