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

重庆建设网站的公司简介目前引流最好的app

重庆建设网站的公司简介,目前引流最好的app,网页设计是什么职业,网站应如何设计题目描述给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 示例 1:输入:head [1,2,2,1] 输出:true示例 2:输入:head […

题目描述

给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 

示例 1:

输入:head = [1,2,2,1]
输出:true

示例 2:

输入:head = [1,2]
输出:false

解题思路

1.栈+双指针

大致思路:使用双指针定位中心元素并将链表前半部分入栈,挨个出栈并遍历后半部分做比较,如果不想等则为false;

class Solution {public boolean isPalindrome(ListNode head) {if (head == null || head.next == null) {return true;}// 使用快慢指针找到链表中点ListNode slow = head;ListNode fast = head;LinkedListStack<Integer> stack = new LinkedListStack<>();// 将前半部分入栈while (fast != null && fast.next != null) {stack.push(slow.val);slow = slow.next;fast = fast.next.next;}// 如果链表长度是奇数,跳过中间节点if (fast != null) {slow = slow.next;}// 比较后半部分和栈中元素while (slow != null) {if (stack.pop() != slow.val) {return false;}slow = slow.next;}return true;}
}public class LinkedListStack<T> {// 定义链表节点private static class Node<T> {T data;Node<T> next;Node(T data) {this.data = data;this.next = null;}}private Node<T> top; // 栈顶节点private int size;    // 栈的大小public LinkedListStack() {top = null;size = 0;}// 入栈操作public void push(T item) {Node<T> newNode = new Node<>(item);newNode.next = top; // 新节点的next指向原来的栈顶top = newNode;     // 更新栈顶为新节点size++;}// 出栈操作public T pop() {if (isEmpty()) {throw new IllegalStateException("Stack is empty");}T item = top.data;  // 获取栈顶数据top = top.next;     // 栈顶指向下一个节点size--;return item;}// 判断栈是否为空public boolean isEmpty() {return top == null;}
}

 2.反转链表+双指针

class Solution {public boolean isPalindrome(ListNode head) {if (head == null || head.next == null) return true;// 1. 快慢指针找中点ListNode slow = head, fast = head;while (fast != null && fast.next != null) {slow = slow.next;fast = fast.next.next;}// 2. 反转后半部分ListNode reversedSecondHalf = reverse(slow);// 3. 比较前后两部分ListNode p1 = head, p2 = reversedSecondHalf;boolean isPalindrome = true;while (p2 != null) {if (p1.val != p2.val) {isPalindrome = false;break;}p1 = p1.next;p2 = p2.next;}return isPalindrome;}private ListNode reverse(ListNode head) {//prev指向反转后链表的最后一个 初始为null  curr指向要反转的那个节点,从head开始ListNode prev = null, curr = head;while (curr != null) {//将反转的下一个节点先记录下来ListNode next = curr.next;//使用头插法curr.next = prev;//将当前反转的节点设置为反转后节点的最后一个prev = curr;//反转下一个节点curr = next;}return prev;}
}


文章转载自:

http://9yRELM2Y.Lmxfy.cn
http://3fHtjjKk.Lmxfy.cn
http://6NfHBVx9.Lmxfy.cn
http://U8nid1SZ.Lmxfy.cn
http://81hCHbSi.Lmxfy.cn
http://trOEV4rE.Lmxfy.cn
http://Mnd5Bsx3.Lmxfy.cn
http://2R73FR8D.Lmxfy.cn
http://tKz9O2FA.Lmxfy.cn
http://SidpJfh5.Lmxfy.cn
http://dPl4axr9.Lmxfy.cn
http://cctZd5bN.Lmxfy.cn
http://aoxytFOe.Lmxfy.cn
http://a6GICfPh.Lmxfy.cn
http://h1TN4LEX.Lmxfy.cn
http://1YXKZQF4.Lmxfy.cn
http://lwppeyCP.Lmxfy.cn
http://rboEfrQQ.Lmxfy.cn
http://MlYpjCUD.Lmxfy.cn
http://LaoXD7c4.Lmxfy.cn
http://KYmV1ZAp.Lmxfy.cn
http://aoduEKcO.Lmxfy.cn
http://DIg7omSv.Lmxfy.cn
http://eYpU4TEA.Lmxfy.cn
http://htTQC70x.Lmxfy.cn
http://7LquisEu.Lmxfy.cn
http://dZ5gvO4g.Lmxfy.cn
http://YIaEJvSy.Lmxfy.cn
http://MsmdFcTt.Lmxfy.cn
http://ZH1Reabr.Lmxfy.cn
http://www.dtcms.com/wzjs/759262.html

相关文章:

  • 电子商务网站建设实训展示昆明网站排名优化价格
  • 北京建设工程协会网站做营销策划要用到哪些网站
  • word网站流程图怎么做宣传类的网站有哪些内容
  • app网站模板下载网页设计师证书报名官网
  • 模拟建设网站天津站设计单位
  • wordpress创建数据库类型选什么seo是什么意思为什么要做seo
  • 南宁seo网站推广服务辽宁建设工程信息网地址
  • 哪里有门户网站开发机器配件做外贸上什么网站
  • 做网站推广被骗17网站一起做网
  • 重庆高端网站开发免费国外ddos网站
  • 温州网站建设温州网站制作做网站策划用什么软件
  • 惠州做网站的公司九一人才网
  • 易语言的网站开发系统东营建设网站公司
  • 网站优化的内容wordpress js 统计
  • 微网站 建设建设工程招标网官网
  • 盗版小说网站怎么做河南省法制建设研究会网站
  • 南漳网站制作十大互联网广告公司
  • 旅游电网站建设目标html5在线编辑器
  • c 开发微网站开发北京 网站空间 租用
  • 绿色配色的网站订制网站
  • 网站开发时数据库的工作开发网站报价方案
  • 搜狗网站入口泉州百度seo
  • 自建站多少钱从化区建设网站
  • 网站开发设计怎么找客户广州网站制作品牌
  • 潮汕网站建设圆通速递我做网站
  • 古风网站的关于我们页面怎么做最近三天的国内新闻
  • 响应式网站的设计尺寸论坛网页制作
  • 服装网站模板下载湖北高企达建设有限公司网站
  • 任何查询网站有没有做404做视频网站技术壁垒在哪里
  • 外贸网站建站费用站酷设计网站官网入口免费