剑指offer java版 test3—从尾到头打印链表
标题:剑指offer java版 test3—从尾到头打印链表
题目:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
解答:知识不够全面,用ArrayList做的 但是看到大佬们还可以用栈,递归,指针反转做,收益匪浅。链接:https://blog.csdn.net/weixin_39795049/article/details/85832150
写的很好。
基础知识介绍:
1,链表:链表是一种物理存储单元上非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针连接次序实现的。
链表由一系列的结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成,每个结点包括两个部分:一是存储数据元素的数据域,另一个时存储下一节点地址的指针域。链表不必须按照顺序存储,使用链表可以客服数组需要预先知道数据大小的特点,链表结构可以充分利用计算机内存空间。
2,Collection表示一组对象,它是集中,收集的意思,Collection接口的两个子接口是List和Set接口。List是有序(List中每个元素都有索引标记,可以根据元素的索引标记访问元素),可重复的容器。List接口常用的实现类有3个:ArrayList,LinkedList和Vector。
2.1 ArrayList底层是用数组实现的存储,所以它查询效率高,增删效率低,线程不安全。但和数组不一样的是,ArrayList是可以存放任意数量的对象,长度不受限制。
2.2 LinkedList的底层则是采用双向链表实现的存储,它的每个数据节点都有两个指针,分别指向前后一个节点和后一个节点。所以LinkedList查询效率低,增删效率高,线程不安全。
2.3 Vector底层使用数组实现的List,线程安全,效率低。
代码编写:(使用ArrayList方式从头到尾输出的代码如下)
part1:链表类如下:
package cn.itcast.test3;public class ListNode {int val;ListNode next = null;ListNode(int val) {this.val = val;}public int getVal() {return val;}public void setVal(int val) {this.val = val;}public ListNode getNext() {return next;}public void setNext(ListNode next) {this.next = next;}
}
part2:主函数代码如下:
package cn.itcast.test3;
/*方法一:使用ArrayList实现 从尾到头输出一个链表*/
import java.util.ArrayList;class practice {public static void main(String[] args){ListNode head=new ListNode(1);ListNode n1=new ListNode(2);ListNode n2=new ListNode(3);head.setNext(n1);n1.setNext(n2);Solution solution=new Solution();solution.printListFromTailToHead(head);}
}class Solution {public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {ArrayList al=new ArrayList();ArrayList al1=new ArrayList();while(listNode!=null){al.add(listNode.val);listNode=listNode.next;}for(int i=al.size()-1;i>=0;i--){al1.add(al.get(i));System.out.println(al1.get(i));}return al1;}
}
剑指offer java版 test3—从尾到头打印链表相关推荐
- 剑指Offer - 九度1511 - 从尾到头打印链表
剑指Offer - 九度1511 - 从尾到头打印链表2013-11-29 21:08 题目描述: 输入一个链表,从尾到头打印链表每个节点的值. 输入: 每个输入文件仅包含一组测试样例. 每一组测试案 ...
- 剑指offer面试题[5]-从尾到头打印链表
目描述 输入一个链表,从尾到头打印链表每个节点的值. /** * struct ListNode { * int val; * struct ListNode *next ...
- 【剑指offer】登峰造极之从尾到头打印链表
题目链接 从尾到头打印链表. 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 热度指数:1254529 题目描述 /** struct ListNode { i ...
- 剑指Offer - 面试题6. 从尾到头打印链表(栈,递归,反转链表)
文章目录 1. 题目 2. 解题 2.1 stack解题 2.2 递归 2.3 反转链表 1. 题目 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回). 示例 1: 输入:head ...
- 剑指offer 面试题5—从尾到头打印链表
题目: 输入一个链表的头结点,从尾到头反过来打印出每个结点的值. 考虑用栈 public void invertedList1(ListNode head) {if (head == null) {r ...
- 剑指offer(C++)-JZ6:从尾到头打印链表(数据结构-链表)
作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回). 如输入{ ...
- 剑指offer面试题06. 从尾到头打印链表(辅助栈法)
题目描述 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回). 思路 详见链接 代码 class Solution:def reversePrint(self,head:ListNod ...
- 剑指offer没有java版吗_剑指Offer(Java版) 持续更新中
面试题2 单例(之前有整理,略) 面试题3 二维数组中的查找 public boolean find(int target, int [][] array) { boolean found = fal ...
- 剑指offer java版(一)
二维数组中的查找 问题描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数 ...
最新文章
- 新版VIEW CLIENT FOR IPADANDRIOD发布了!
- 白话经典算法系列之六 高速排序 高速搞定
- Linux从零开始(二、基础命令(续)解决命令行无限输入,停不下来)
- 设计算法时要确保分类讨论的完备性
- [安卓] 9、线程、VIEW、消息实现从TCP服务器获取数据动态加载显示
- 第九节:深究并行编程Parallel类中的三大方法 (For、ForEach、Invoke)和几大编程模型(SPM、APM、EAP、TAP)
- 织梦黑色互联网建站设计模板
- 【今日CV 视觉论文速览】16 Nov 2018
- php中的递归算法,PHP递归算法(四)
- python2 urllib2_python2.7 urllib和urllib2
- python面试题37道(附答案)看完面试不愁了
- oracle相同sql执行计划不同,相同的SQL 在正式和测试环境中执行计划的不同
- 等价类划分法测试用例设计
- 六祎-简单的排版表(python)
- 安装Mediapipe中遇到的问题ERROR: An error occurred during the fetch of repository ‘local_execution_config_pyt
- 游戏本自动掉帧_实用 | 大夏天,如何解决卡顿掉帧?
- 手工从grub引导进入Ubuntu16.04
- 一张照片就能攻破人脸识别系统,人脸识别安全性亟需提高
- android 上层设置 自动调节亮度
- Win 8带给我们的惊喜和遗失的美好
热门文章
- 备案接口 php,​分享一个备案查询的api接口源码,可自行开发对接备案API接口...
- 谷歌浏览器书签导出与导入到其他浏览器
- jq双击放大图片_Jquery图片点击放大
- 【ASP.NET CORE】实现图片的上传与通过路径访问预览
- 模糊c均值聚类算法的c++实现
- Rtools安装方法
- 虹软人脸识别SDK的简单使用
- 比较全面的ORB-SLAM3论文翻译(基本全文不带相关研究与精度验证部分)
- 使图片 放大 缩小 原始 最佳
- 功率放大模块如何选择(安泰功率放大器模块产品介绍)