LinkedList中用递归的方法把一串数字倒序输出,急,好的追分,谢谢!

作者&投稿:雍详 (若有异议请与网页底部的电邮联系)
LinkedList 中用递归的方法求最大/小数值.急,谢谢!!!!!!!!!!!!!!!!!!!!!!!~

public static void main(String[] args){
LinkedList list = new LinkedList();
list.add(5);
list.add(4);
list.add(9);
list.add(0);
list.add(1000);
list.add(7000);
System.out.println(LinkedListMax(list, 0));
}
public static int LinkedListMax(LinkedList list, int max) {
if (list.isEmpty())
return max;
int tmp = Integer.parseInt(list.pop().toString());
return max > tmp ? LinkedListMax(list, max) : LinkedListMax(list, tmp);
}
你换成求最小,不用我说吧
但我只想说你这根本没必要啊,LinkedList本身就有个迭代为什么还要来用递归呢

int i = c.size(); 这里有问题。ArrayList的最大下标也是size()-1,你从size()开始当然会有ArrayIndexOutOfBoundsException。把它改成int i = c.size()-1;

sort是大小排序,而LinkedList里的顺序是index序,只是倒index序的话
public class LinkedTest {
LinkedList<Integer> list ;
LinkedTest(){
Integer[] arr = {1,2,3,4,5};
list = new LinkedList<Integer>(Arrays.asList(arr));
}
public static void main(String[] args) {
LinkedTest lt = new LinkedTest();
System.out.println(lt.list);
System.out.println(lt.dao());
}
public LinkedList<Integer> dao(){
LinkedList<Integer> returnList = new LinkedList<Integer>();
reverseOrder(returnList,list);
return returnList;
}
public void reverseOrder(LinkedList<Integer> returnList,LinkedList<Integer> changeList){
Integer i = changeList.poll();
if(changeList.size() == 0){
returnList.offer(i);
}else{
reverseOrder(returnList,changeList);
returnList.offer(i);
}
}
}
方法因人而异,递归的话自己写了个方法,如果觉得可以了请采纳

import java.util.Arrays;
import java.util.Iterator;
import java.util.LinkedList;
public class Test {
LinkedList<Integer> newll = new LinkedList<Integer>();
public static void main(String[] args) {
LinkedList<Integer> ll = new LinkedList<Integer>();
ll.add(1);
ll.add(2);
ll.add(3);
ll.add(4);
ll.add(5);

Test t=new Test();
t.daoIt(ll);
//t.dao(ll);
t.outPrint();
}
/**
* 递归
*
* @param ll
*/
public void dao(LinkedList<Integer> ll) {
newll.add(ll.getLast());
ll.remove(ll.getLast());
if (ll.size() > 0) {
dao(ll);
}
}
/**
* 迭代
*
* @param ll
*/
public void daoIt(LinkedList<Integer> ll) {
Integer[] iger=new Integer[ll.size()];
int index = ll.size();
Iterator<Integer> it = ll.iterator();
while (it.hasNext()) {
index--;
iger[index]=it.next();
}
newll.addAll(Arrays.asList(iger));
}
/**
* 输出新的linkedList
*/
public void outPrint() {
for (Integer i : newll) {
System.out.println(i);
}
}
}

楼主用一个数组把linkedlist的值接受了排序Arrays.sort()在输出就行了把。。。

用sort()方法 之后再从 末尾开始循环输出就行

为什么要用递归呢?




ArrayList和LinkedList都是线程安全的吗?
都是线程安全的。ArrayList和LinkedList的区别及其优缺点 ArrayList和LinkedList的大致区别:1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。3.对于新增和删除操作add和remove,LinedList比较占优势,因为...

ArrayList、linklist、list的区别
1、ist是一个接口,ArrayList和LinkedList是两个实现类.2、他们实现的方式不一样,其实LinkedList才是真正的链表(如果不清楚什么是链表,需要了解一下相关数据结构的知识,这不是一两句话能说清楚的)3、而ArrayList是用数组实现的,它不是真正的链表,在初始化的时候它先对数组设置一个初始容量,当数组...

ArrayList和LinkedList到底哪一个插入效率更高?
说到ArrayList和LinkedList我们不得不放出下面的这张图来帮助我们更好的了解他们的区别。从图中我们已经可以看出他们的区别了 ArrayList是顺序结构,所以定位很快,我们可以根据下标可以很容易的找到我们的想要的位置,但在插入数据时我们要移动后边的所有数据,所以插入数据很慢。 而LinkedList 是链表结构,...

LinkedList(详细讲解)
LinkedList是Java中实现List接口和Deque接口的双向链表,其独特结构使其支持高效的插入和删除操作,同时具备队列特性。非线程安全的LinkedList可通过Collections.synchronizedList方法进行同步处理。内部结构由Node节点构成,包含前驱节点、节点值和后继节点。类提供了多种操作方法,如空构造、基于集合创建链表、添加...

arraylist 和 linkedlist 的区别
LinkedList 同样实现List接口的LinkedList与ArrayList不同,ArrayList是一个动态数组,而LinkedList是一个双向链表。所以它除了有ArrayList的基本操作方法外还额外提供了get,remove,insert方法在LinkedList的首部或尾部。由于实现的方式不同,LinkedList不能随机访问,它所有的操作都是要按照双重链表的需要执行。在...

ArrayList与LinkedList的扩容
ArrayList和LinkedList是Java中常见的两种列表数据结构,它们在扩容机制上有着本质的不同。1. ArrayList的扩容机制:- 首先,ArrayList的底层是一个动态数组,它可以在需要时自动增加其容量。- 扩容过程:当数组中的元素达到其容量上限时,ArrayList会创建一个新的、更大的数组,并将现有元素复制到这个新数组...

LinkedList的疑问
LinkedList里面存储的只能是对象类型,Integer是int包装器类型,里面的类型是Integer,不能是int 当执行linkedList.contains(i3)这个时,会自动将i3转化为它的包装器类型,也就是Integer 所以这个结果是true

java中ArrayList和LinkedList的区别
java中的arraylist和linkedlist的区别如下:1.对ArrayList和LinkedList而言,在列表末尾增加一个元素所花的开销都是固定的。对ArrayList而言,主要是在内部数组中增加一项,指向所添加的元素,偶尔可能会导致对数组重新进行分配;而对LinkedList而言,这个开销是统一的,分配一个内部Entry对象。2.在ArrayList的中间...

linkedlist报错queuefull
表示队列已满。linkedlist报错queuefull表示队列已满,无法再添加新元素,是由于在使用队列时,没有正确地处理队列中的元素,导致队列中的元素数量超过了队列的容量。在使用队列时,要正确地处理队列中的元素,避免队列中的元素数量超过了队列的容量。

linkedlist实现了哪些接口
LinkedList实现了多个接口,其中包括以下接口:1. **Collection**:LinkedList实现了Collection接口,因此它符合Collection接口的所有方法,如add(), remove(), contains(), size()等。2. **Deque**:LinkedList也实现了Deque接口,因此它支持在两端添加和移除元素的方法,如addFirst(), addLast(), ...

湟中县15967435010: LinkedList中用递归的方法输出一串数字中的奇数,急,好的追分,谢谢! -
烛泽复锐: public LinkedList<Integer> jishu(LinkedList<Integer> li) { LinkedList<Integer> lli = new LinkedList<Integer>(); for (int i = 0; i < li.size(); i++) { if (li.get(i) % 2 != 0) lli.add(li.get(i)); } return lli; }

湟中县15967435010: 递归求linkedlist的长度算法 java -
烛泽复锐: 仅供参考:int getSize(LinkedList<E> list){ if(list.isEmpty()) return 0;else{ list.pop();return 1 + getSize(list); } }

湟中县15967435010: JAVA linkedlist 递归法 -
烛泽复锐: 问题倒是不难,不递归不行么?

湟中县15967435010: java 递归 linked list 求 相同元素 不同元素 还有两个LIST是否相等 -
烛泽复锐: 这是搞哪样?不但大费周章,而且容易错…… 先equalSets吧,private static boolean equalSets(LinkedList list1, LinkedList list2){ return subset(list1,list2)&&subset(list2,list1);// 集合的内容,两集合互为子集就是相等了 } 然后difference,private ...

湟中县15967435010: java版递归算法实现单链表的求长度、查找、替换等操作 -
烛泽复锐: 首先,你实现链表的时候肯定是有一个变量记录链表大小的,求长度,直接获取链表大小就可以.查找:有两种,一种是下标查找,还有一种是对象查找.其实底层归根结底都是用的index下标查找. 替换也是同道理.你要明白链表的原理,我相信你就不会问递归去做这些操作.因为你查找只要给出下标,直接在for循环在0到你给定的下标内循环就能取到,如果你给的下标在链表大小/2 的后半部分,你可以倒序循环;当然这只是一种思路,希望能帮到你

湟中县15967435010: 求单链表的长度的递归算法(java) -
烛泽复锐: package cn.uestc.fz; class Node{ int data; Node next; public Node(int data,Node next){ this.data=data; this.next=next; } } public class LinkedList { Node head; public void add(Node node){ if(head==null) head=node; else{ Node p=head; while(p.next!...

湟中县15967435010: 利用数组a[N]建立一个线性表,再从线性表中删除所有重复元素,并输出 -
烛泽复锐: /*下面的程序产生N个随机的整数,存放在数组a中.然后根据数组a建立线性链表, 再删除链表中所有重复元素,并输出无重复元素结点的链表结点的值 */#include<stdio.h>#include<stdlib.h>#include<time.h>///////////////////////定义结点数据类型等///////...

湟中县15967435010: 请分别使用java语言递归和栈技术,将一个非负十进制数转换成二进制. -
烛泽复锐: 递归:在递归方法内对传进来的整数对2取余,然后对2整除,输出余数,并判断整数结果是否为0,不为0则递归下去,结果为0则return 栈:使用do while循环,在循环体内将十进制数对2取余,将取得的余数存入LinkedList,讲十进制数对2整除,将整除的结果放入变量作为下一次循环的源数据,在while循环的循环条件上对整除的结果做大于0的判断,循环结束后将值一次从LinkedList取出,输出

湟中县15967435010: c语言 用递归写一个小程序 -
烛泽复锐: struct node *tmp; void destroy_tail (struct node *node) { if(node->link!=NULL) { tmp = node; destroy_tail(node->link)); } else { free(node); node = NULL; tmp->link = NULL; } } 传入首节点、中间节点,随意

湟中县15967435010: java 中LinkedList到底是链表结构还是栈结构 刚刚学习java的,小白. -
烛泽复锐: 是这样的,LinkedList实现了List接口,除了有List中所有方法以外,还有get,remove,insert以及最开头元素和最结尾元素等方法,而这些方法使得LinkedList既能当stack,queue和double-end queue(Deque).所以你怎么用它,它就是什么

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网