校招准备系列:每天一道算法题(12)-从尾到头打印链表
来源:互联网 发布:iptv服务器软件 编辑:程序博客网 时间:2024/05/20 04:13
从尾到头打印链表
此题来自 剑指offer
题目描述
输入一个链表,从尾到头打印链表每个节点的值。
方法一:递归
public class Solution { ArrayList<Integer> arrayList=new ArrayList<Integer>(); public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { if(listNode!=null){ this.printListFromTailToHead(listNode.next); arrayList.add(listNode.val); } return arrayList; }}
方法二:遍历
/*** 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> list = new ArrayList<Integer>(); ListNode pre = null; ListNode next = null; while(listNode!=null){ next = listNode.next; listNode.next = pre; pre = listNode; listNode = next; } while(pre!=null){ list.add(pre.val); pre = pre.next; } return list; }}
方法三:
import java.util.ArrayList;import java.util.Collections;public class Solution { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { ArrayList<Integer> list = new ArrayList<Integer>(); while(listNode != null){ list.add(listNode.val); listNode = listNode.next; } Collections.reverse(list);//使用Collections的reverse方法,直接将list反转 return list; }}
阅读全文
0 0
- 校招准备系列:每天一道算法题(12)-从尾到头打印链表
- 校招准备系列:每天一道算法题(1)
- 校招准备系列:每天一道算法题(2)
- 校招准备系列:每天一道算法题(3)
- 校招准备系列:每天一道算法题(4)
- 校招准备系列:每天一道算法题(14)-合并两个排序的链表
- 校招准备系列:每天一道算法题(5)-两数之和
- 校招准备系列:每天一道算法题(6)-连续最大和
- 校招准备系列:每天一道算法题(7)-末尾0的个数
- 校招准备系列:每天一道算法题(8)-进制转换
- 校招准备系列:每天一道算法题(9)-单例
- 校招准备系列:每天一道算法题(10)-二维数组查找
- 校招准备系列:每天一道算法题(11)-替换空格
- 校招准备系列:每天一道算法题(13)-斐波那契数列
- 校招准备系列:每天一道算法题(15)-求1+2+3+...+n
- 每天一道算法题——从尾到头输出链表
- 算法-从尾到头打印链表
- 算法题3:从尾到头打印链表
- 图论中的双射
- BZOJ 2588 & SPOJ 10628:树上主席树
- Qt图片与Base64之间的编解码
- [Python]网络爬虫(二):利用urllib2通过指定的URL抓取网页内容
- java版云笔记(九)之动态sql
- 校招准备系列:每天一道算法题(12)-从尾到头打印链表
- linux 系统管理命令
- java学习笔记--数组
- Selenium3+Python3+PhantomJS配置及测试解析
- 2-3 jdk安装
- jsp直接显示数据库表格信息
- TensorFlow 逻辑回归样例代码
- leetcode
- Gym-101490H Multiplying Digits(进制转化--倒着)