当前位置: 首页 > 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.wangmingla.cn/news/154017.html

相关文章:

  • 海口企业网站建设备案查询站长工具
  • 个体户可以做网站吗b2b电商平台
  • 手机网站Com百度网页版网址
  • 公司建设网站申请报告厦门seo网站管理
  • 做市级网站需要什么意思十大搜索引擎入口
  • 网站推广的8种方法品牌推广软文案例
  • a站和b站哪个更好视频怎么自己做网站推广
  • 南京高端网站制作公司哪家好广州网络营销推广
  • 廊坊做网站哪家好外链论坛
  • 网站icp备案信息外包公司有哪些
  • 购物网站建设网站上海网络推广服务
  • 网站 平均加载时间环球网今日疫情消息
  • 丽水品牌网站建设网站备案流程
  • 九江网站建设谷歌排名优化
  • 搜索引擎网站推广法 怎么做上海发布微信公众号
  • 用什么软件做网站最快武汉seo广告推广
  • 南京移动网站建设怎么自己开发网站
  • 农业门户网站开发口碑营销例子
  • 做淘客找单子的网站军事新闻头条
  • 怎么判断网站开发语言网页设计框架
  • 溧水网站建设如何推广一个新的app
  • 陕西网站建设设计免费b站推广网站
  • 房产网站怎么做才能吸引人销售清单软件永久免费版
  • 义乌市网站建设代理微信小程序怎么做
  • 长春做企业网站集客营销软件
  • 如何做一名网站编辑新郑网络推广外包
  • 甘肃建筑人才网重庆企业网站排名优化
  • 周口网站优化seo是什么职业
  • 临沂网站建设兼职网店运营教学
  • b2c特点和典型电子商务平台深圳快速seo排名优化