【剑指offer】面试题 6. 从尾到头打印链表
2024-08-31 21:17:03
面试题 6. 从尾到头打印链表
题目描述
输入一个链表的头结点,从尾到头反过来打印出每个结点的值。
Java 实现
ListNode Class
class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
@Override
public String toString() {
return val + "->" + next;
}
}
使用递归
import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> res = new ArrayList<>();
if (listNode == null) {
return res;
}
res.addAll(printListFromTailToHead(listNode.next));
res.add(listNode.val);
return res;
}
}
使用头插法
import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> res = new ArrayList<>();
ListNode head = new ListNode(-1);
while (listNode != null) {
ListNode newHead = listNode.next;
listNode.next = head.next;
head.next = listNode;
listNode = newHead;
}
while (head.next != null) {
res.add(head.next.val);
head = head.next;
}
return res;
}
}
使用栈
import java.util.ArrayList;
import java.util.Stack;
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> res = new ArrayList<>();
Stack<Integer> stack = new Stack<>();
while (listNode != null) {
stack.push(listNode.val);
listNode = listNode.next;
}
while (!stack.isEmpty()) {
res.add(stack.pop());
}
return res;
}
}
最新文章
- TFS工作项数据统计及相关数据库结构分析
- .net两个对象比较,抛出不一样字段的结果
- OkHttp简介
- 详细整合教程(Spring+SpringMVC+MyBatis)
- CSS3随内容自动伸缩的背景【转】
- oracle函数,查询,事务
- Paramiko 模块使用
- Spring的BeanFactoryPostProcessor和BeanPostProcessor
- table中绝对定位元素相对td定位失效解决方案
- big_table练习数据表
- VHDL TestBench 测试终止时自动结束仿真——assert方法
- 搭建typescript开发环境最详细的全过程
- 201521123068《Java程序设计》第4周学习总结
- Solr简单使用
- Codeforces Round #547 (Div. 3)
- Docker学习笔记-简单运行.netcore
- mysql 查询优化 ~explain解读之type的解读
- 为何time_before 起作用【转】
- 小米 OJ 编程比赛 03 月常规赛
- rsync 数据备份+cron+mailx案例
热门文章
- LeetCode 1043. Partition Array for Maximum Sum
- Jmeter 正则表达式提取器详解(Regular Expression Exactor)
- [USACO12MAR]花盆 二分 单调队列
- 03-树2 List Leaves (25 分)
- 如何打开 win 10 内置应用
- [HAOI2018]染色(NTT)
- solr(一) 单节点安装部署
- 安装python 3.7
- python基于redis实现分布式锁
- typescript - 8.命名空间