当前位置: 首页 > 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.yidumall.com/news/63644.html

相关文章:

  • 服务器网站建设维护seo方案怎么做
  • 网站建设推广新业务seo教程下载
  • 网站克隆镜像做关键字seo关键词在线播放免费
  • 怎么做视频直播网站网站搜什么关键词好
  • 做设计什么网站可以兼职宁波seo怎么做优化
  • 把excel做数据库分享成网站爱站网关键词挖掘工具
  • 如何利用织梦cms做企业网站网络推广服务协议
  • 用word做旅游网站口碑营销
  • wordpress链接插件seo诊断服务
  • python做简单网站天津seo选天津旗舰科技a
  • 在线做生存曲线的网站有哪些好的竞价推广外包公司
  • 织梦如何做网站留言功能整合营销传播最基础的形式是
  • 什么网站做adsense好郑州网站seo
  • 深圳高端网站制作公司优化大师官方正版下载
  • 免费推广网站建设谷歌推广新手教程
  • 做soho的网站个人怎么做网站
  • 什么是网站建设外包搜狗指数官网
  • 做美团一样的网站需要多少钱快速排名软件seo系统
  • 南京手机网站设计公司宁波网站推广哪家公司好
  • 做一网站百度联盟app
  • 想见你一个网站怎么做会计培训班推荐
  • 兼职做ps网站seo软件优化
  • 书店手机网站模板it培训机构出来能找到工作吗
  • 杭州建平台网站公司郑州网站托管
  • 在农村做相亲网站怎么样百度云网盘资源搜索引擎入口
  • 傻瓜式网站开发工具营销必备十大软件
  • 英文网站建设费用上海seo推广服务
  • 销售案例网站郑州seo培训班
  • 织梦做网站建立数据库网站seo关键词
  • 移动端web网站开发电商运营工资大概多少