LeetCode26|回文链表
时间:2022-07-23
本文章向大家介绍LeetCode26|回文链表,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1,问题简述
编写一个函数,检查输入的链表是否是回文的。
2,示例
示例 1:
输入:1->2
输出:false
示例 2:
输入:1->2->2->1
输出:true
3,题解思路
数据转换
4,题解程序
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class IsPadlindromeTest {
public static void main(String[] args) {
ListNode l1 = new ListNode(1);
ListNode l2 = new ListNode(2);
ListNode l3 = new ListNode(2);
ListNode l4 = new ListNode(1);
l1.next = l2;
l2.next = l3;
l3.next = l4;
boolean padlindrome = isPadlindrome(l1);
System.out.println("padlindrome = " + padlindrome);
}
public static boolean isPadlindrome(ListNode head) {
if (head == null || head.next == null) {
return true;
}
List<Integer> list = new LinkedList<>();
ListNode tempNode = head;
while (tempNode != null) {
list.add(tempNode.val);
tempNode = tempNode.next;
}
int start = 0;
int end = list.size() - 1;
while (start <= end) {
if (!list.get(start).equals(list.get(end))) {
return false;
} else {
start++;
end--;
}
}
return true;
}
}
5,总结
这道题的解法虽然解法比较简单,但是耗时多,这里就不多说了,不过也通过了题目的测试用例,不知道后面有没有时间来做一下这个题的优化,目前这样的题都是采用很常规的思路来解的,如同功能需求一样,功能先做出来,优化可以放在后面功能做完再去优化,这也是自己的一点思考,后面自己确实要看下这方面的思路是否可以达到稍微优化
- Envoy架构概览(6):异常检测
- Envoy架构概览(7):断路,全局限速和TLS
- Envoy架构概览(9):访问日志,MongoDB,DynamoDB,Redis
- 【前沿】TensorFlow Pytorch Keras代码实现深度学习大神Hinton NIPS2017 Capsule论文
- Linux 部署ASP.NET SQLite 应用 的坎坷之旅 附demo及源码
- 跨平台:使用OWIN 为WebAPI 宿主
- 如何在UWP中统一处理不同设备间的页面回退逻辑
- new and override
- 初识SignalR~仿QQ即时聊天(群发,单发)(Web,WPF等Demo演示)【上】
- 【翻译】A Next-Generation Smart Contract and Decentralized Application Platform
- asp.net回调javascript
- Oracle9i第2版中的UNT_FILE提高了文件输入/输出(I/O)功能。
- Python 工匠:善用变量来改善代码质量
- sql数据库打包部署安装
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法