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

网站优化的服务器租用收费

网站优化的,服务器租用收费,安卓android软件,桂林建设信息网站力扣题目:回文链表 开篇 今天是备战蓝桥杯的第23天。我加入的编程导航算法通关村也在今天开营啦!那从现在起,我的算法题更新会按照算法村的给的路线更新,更加系统。大家也可以关注我新开的专栏“算法通关村”。里面会有更全面的知…

    力扣题目:回文链表

开篇

  今天是备战蓝桥杯的第23天。我加入的编程导航算法通关村也在今天开营啦!那从现在起,我的算法题更新会按照算法村的给的路线更新,更加系统。大家也可以关注我新开的专栏“算法通关村”。里面会有更全面的知识点和题目的分享。

题目链接: 234.回文链表

题目描述

在这里插入图片描述

代码思路1

1.一开始写的时候,感觉在链表里操作太麻烦了,就利用list集合把链表里的元素存起来,然后在链表里判断就行(也可以放数组里)
2.既然存在集合里,那回文数的判断就轻轻松松喽。这里我使用左右指针,一个在头,一个在尾,两个指针同时往中间移动,只要有一次两个指针对应的数据不相等,则不是回文

代码纯享版

/*** 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 boolean isPalindrome(ListNode head) {List<Integer> list = new ArrayList<>();ListNode node = head;while(node != null){list.add(node.val);node = node.next;}int left = 0, right = list.size() - 1;while(left < right){if(list.get(left) != list.get(right)) return false;left++;right--;}return true;}
}

代码逐行解析版

class Solution {public boolean isPalindrome(ListNode head) {List<Integer> list = new ArrayList<>(); //创建list集合ListNode node = head; //创建结点node指向头结点while(node != null){ //当node不为空时list.add(node.val); //将该结点添加到集合中node = node.next; //node指向下一个结点}int left = 0, right = list.size() - 1; //创建左右指针,分别指向集合到开头和结尾while(left < right){ //循环条件是两个指针相遇前if(list.get(left) != list.get(right)) return false; //两个指针对应的数如果不相等,则不是回文,返回falseleft++; //左指针右移right--; //右指针左移}return true;//没有false的情况,返回true}
}

代码思路2

上面第一种方法被算法村的讲义说是逃避链表,面试不能这样,只能含泪考虑其他思路。
第二种思路是利用栈后进先出的特点,先把整个链表压入栈中,然后同时遍历链表和输出栈顶元素,一一比较,不相同则不是回文数

代码纯享版

/*** 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 boolean isPalindrome(ListNode head) {Stack<Integer> stack = new Stack<>(); ListNode node = head;while(node != null){stack.push(node.val);node = node.next;}node = head;while(node != null){if(stack.pop() != node.val) return false;node = node.next;}return true;}
}

代码逐行解析版

class Solution {public boolean isPalindrome(ListNode head) {Stack<Integer> stack = new Stack<>(); //创建一个栈ListNode node = head; //创建node结点指向头结点while(node != null){ //node不为空时stack.push(node.val);//把node结点的值压入栈中node = node.next; //node指向下一个结点}node = head; //node重新指向头结点while(node != null){ //node不为空时if(stack.pop() != node.val) return false; //栈顶元素出栈,如果栈顶元素与node结点的值不相等,返回falsenode = node.next; //node指向下一个结点}return true;//没有false的情况,返回true}

}

结语

 如果这道题的分享对您有所帮助,点个关注,我会每天更新力扣题的讲解,与大伙儿一起向前迈进!

http://www.yayakq.cn/news/938226/

相关文章:

  • 受欢迎的网站建设平台库尔勒网站建设哪家好
  • 网站开发好难呀php如何搭建网站后台
  • 广东省建设工程安全协会网站wordpress居中代码
  • 开发工程师是程序员吗seo挂机赚钱
  • 长春火车站最新消息阿里巴巴的网站是自己做的吗
  • 简单电商网站模板快递网站建设代码
  • 免费qq空间访客网站六安城市网官网
  • 祁阳县住房和城乡规划建设局网站出国做博士后网站
  • 8免费建站网站公司网站模板内容
  • 公司网站快速备案中国菲律宾男篮
  • 科技设计公司网站模板企业网站加快企业信息化建设
  • 河南省建设厅职称网站网站建设的几点体会
  • 网站不稳定有什么影响当当网站建设优点
  • 做导航网站重庆豆花制作
  • 门户网站制作网站维护有文化建设费
  • 北京企业网站模板建站开发专业做图片制作网站
  • 家居网站建设全网营销湖南网页
  • 网站设计培训班老师网站高级?O置
  • 网站开发项目挣钱吗免费的网站软件下载安装
  • 一品猪网站开发最好企业网站
  • 网站如何查看浏览量网站建设创新互联
  • 网站排名系统企业整套vi设计都包含哪些
  • 石家庄的网站开发公司网站专业建设
  • 如何做网站卖衣服做网站有没有受骗过
  • 新乡专业的网站建设公司网页制作教程简明
  • 男女直接做的视频上那个网站爱站网的关键词是怎么来的
  • 成都家居网站建设网站建设制作包括哪些
  • 学做彩票网站好佛山做网站公司排名
  • 广州建站培训学校湖南产品网络营销推荐咨询
  • wordpress 删除站点2015网站设计趋势