当前位置: 首页 > 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.yayakq.cn/news/40529/

相关文章:

  • 网站数据库制作wordpress怎么拷贝
  • 信丰县建设局网站响应式网站有哪些2017
  • 个人网站怎么建立模板网站优
  • 全屏网站大小知名wordpress博客
  • 做外贸收费的服装网站wordpress qq音乐播放器
  • 创世网站建设南宁网站建设 南宁联达亿
  • 备案网站注意事项南宁网站建设外包
  • 网站多少钱测量为什么要建站
  • 佛山新网站制作特色用阿里云空降怎么建设网站
  • 做暧暖的免费网站网页设计家乡南京
  • 建设项目自主验收公示的网站淘宝一个关键词要刷多久
  • 网站设计 psd关键词优化需要注意
  • 陕西省交通建设集团西长分公司网站成都网站建设 培训班
  • 西宁大型网站建设网站月流量
  • 闲鱼上做网站logo设计公司排名
  • 无锡网站建设要多少钱免费网站推广产品
  • 浙江省网站集约化建设通知公司广告设计图片
  • 小孩子做手工做游戏的网站金山网站安全检测
  • 旅游类网站建设的结论中卫网站建设公司
  • 做招商加盟做得比较好的网站wordpress自定义字段
  • 学设计网站外贸网店有哪些
  • 宁波城乡住房建设厅网站房地产销售段子
  • 怎么更改网站首页图片wordpress接入微信登录
  • 做网站哪家比较好泉州网页设计制作
  • 惠州做棋牌网站建设找哪家效益快平面设计工作室业务范围
  • 阿里云备案多个网站老牛影视传媒有限公司
  • 什么网站可以买世界杯如何用文档做网站
  • 创建网站需要什么做翻页电子书的网站
  • 做齐鲁油官方网站企业网站重要性
  • 为啥浏览做的网站有移动条花都网站建设公司