剑指offer中经典的算法题之从头到尾打印链表
2024-08-28 18:54:53
话不多说上代码:
我自己的算法是:
/**
* public class ListNode {
* int val;
* ListNode next = null;
*
* ListNode(int val) {
* this.val = val;
* }
* }
*
*/
import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> returnList = new ArrayList<Integer>();
if(listNode == null){
return returnList;
}
ListNode re = reverse(listNode);
while(re != null){
returnList.add(re.val);
re = re.next;
}
return returnList;
} public static ListNode reverse(ListNode listNode){
if(listNode.next == null){
return listNode;
}
ListNode next = listNode.next;
listNode.next = null;
ListNode re = reverse(next);
next.next = listNode;
return re;
}
}
这是我没有参考其他人的答案自己想出来的简单的算法,算是比较糟糕了,思路是先反转链表,再进行打印
下面列出其他人比较经典的算法:
1. 利用栈,先进后出
2 . 递归
最新文章
- 阿里签名中URLEncode于C#URLEncod不同之处
- javascript 的事件--阻止冒泡
- ubuntu 14.04 编译内核出现unable to locate package ncurses-devel 问题的解决
- Unity 物理引擎动力学关节
- ASP.NET-----Repeater数据控件的用法总结(转)
- bzoj 2209: [Jsoi2011]括号序列 splay
- java多线程入门
- cms建站
- 【报错原因】Uncaught SyntaxError: Unexpected token <;
- buildroot构建项目(三)--- u-boot 2017.11 适配开发板修改 1
- php-fpm占用cpu和内存过高100% 解决办法
- java学习笔记30(IO :缓冲流)
- 更改MySQL数据库的编码为utf8mb4
- linux设置允许和禁止访问的IP host.allow 和 host.deny
- DBCC--CHECKDB--使用快照还是表锁
- Codeforces 801C Voltage Keepsake(二分枚举+浮点(模板))
- Skip List(跳跃表)原理详解与实现【转】
- javascript 正则表达式校验方式写法
- 51Nod 1228 序列求和
- Ubuntu下Python使用MySQLdb远程连接数据库的常见问题及解决方案