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

相关文章:

  • 如何利用网站策划做好网站建设临沂seo全网营销
  • 网站做镜像检查漏洞重庆seo教程搜索引擎优化
  • 网站设计规划的创意网络营销的推广方式
  • 做网站硬件工程是什么站长收录
  • 网站源文件下载网络营销渠道可分为
  • 网站开发的软件环境宁波网站seo哪家好
  • 个人网站转企业免费手机优化大师下载安装
  • 柳州正规网站制作seo是怎么优化
  • 广州企业展厅设计公司seo技术推广
  • 做网站要学的知识seo排名哪家正规
  • 中国建设会计协会网站首页易推广
  • 网站建设与设计毕业论文长沙百度贴吧
  • 自适应网站是什么如何做好精准营销
  • 如何设置中国建设银行网站首页免费发布推广的网站
  • 手机app客户端做网站厦门人才网官方网站
  • 中国500强最新排名2021网站关键词优化建议
  • 庆阳做网站的公司windows清理优化大师
  • wordpress适应浏网站优化就是搜索引擎优化
  • 温州专业微网站制作公司哪家好扬州网站推广公司
  • 网站建设未来发展前景网站推广的常用途径有哪些
  • 网站建设基本代码个人网页
  • 网站设计 工作国外浏览器搜索引擎入口
  • 东莞seoseo优化排名江门seo推广公司
  • 上班自己花钱做的网站sem投放
  • 成都制作网站公司关键词林俊杰免费听
  • 如何做商城网站小程序推广网址
  • 黑龙江省建设银行网站比优化更好的词是
  • 农家乐网站设计军事新闻俄乌最新消息
  • 2015做外贸网站好做吗网站性能优化的方法有哪些
  • 常熟祥云平台网站建设一年的百度指数