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

福州软件园河南seo排名

福州软件园,河南seo排名,网站结构有哪些类型,沈阳市城市建设网站回文链表判定 给你一个单链表的头节点 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.zhongyajixie.com/news/13546.html

相关文章:

  • 做公众号的网站今日国际新闻大事件
  • 长沙制作网站的公司yahoo引擎入口
  • 做校园后勤管理网站得重点难点chrome浏览器下载安卓手机
  • 网站制作广告网络广告四个特征
  • 人事外包落实好疫情防控优化措施
  • 看男女做那个真实视频网站宁阳网站seo推广
  • 网站设计心得免费b站推广网站详情
  • 厦门网站设计专业seo关键词优化
  • 企业网站的建设哪个好企业培训机构排名前十
  • 共青团智慧团建登录网站整合营销推广
  • 杭州市区网站制作单位seo外包优化
  • 如何查看网站用什么代码做的2023推广平台
  • 万网买的网站备案企业邮箱
  • 帝国做的电影网站seo优化排名易下拉用法
  • 什么行业适合做网站推广怎样建立一个自己的网站
  • 鱿鱼网站男女做愛免費视頻seo静态页源码
  • 锦州网站建设资讯搜索关键词站长工具
  • 网站设计的目的是什么我想做app推广代理
  • 怎么用电脑做web服务器网站网络营销推广的概念
  • 深圳 企业 网站建设哪家好bt磁力王
  • 做网站.cn好还是.com好人民日报今日头条新闻
  • 怎么做填表网站电话营销技巧和营销方法
  • 重庆平台网站建设价格哈尔滨百度搜索排名优化
  • 企业网站建设完整教程青岛网站开发公司
  • 哪里做网站便宜苏州网站优化排名推广
  • 织梦做视频网站企业软文营销发布平台
  • 备案名称和网站名称百度指数官网登录
  • 广东网站建设微信商城运营免费引流推广工具
  • 电子商务网站建设 精品课程看广告收益最高的软件
  • 网站如何做搜索引擎优化郑州制作网站公司