数据结构与算法-反转链表-递归法
反转链表
有一个单向链表t如下:
t = 1->2->3->4->5->6->7->8->9
写一个方法反转链表t如下:
1<-2<-3<-4<-5<-6<-7<-8<-9 = t
java代码:
package test;
/**
* 节点类
*/
class Node{
public int data;
public Node next;
public Node(int data,Node next) {
this.data=data;
this.next=next;
}
public Node(int data) {
this.data=data;
}
}
public class TestMain3{
public static void main(String[] args){
Node n=new Node(9);
n=new Node(8,n);
n=new Node(7,n);
n=new Node(6,n);
n=new Node(5,n);
n=new Node(4,n);
n=new Node(3,n);
n=new Node(2,n);
n=new Node(1,n);
System.out.print("反转前:");
Node t=n;
// t = 1->2->3->4->5->6->7->8->9
while(t!=null) {
System.out.print(t.data+" ");
t=t.next;
}
System.out.println();
System.out.print("反转后:");
t=trans(n);
// 1<-2<-3<-4<-5<-6<-7<-8<-9 = t
while(t!=null) {
System.out.print(t.data+" ");
t=t.next;
}
}
/**
* 反转链表
* @param n
* @return
*/
public static Node trans(Node n) {
Node t;
if(n.next!=null) {
t = trans(n.next);
n.next.next=n;
n.next=null;
}else {
return n;
}
return t;
}
}
评论区
请写下您的评论...
猜你喜欢
blog
归并排序(递归)- 数据结构与算法
数据结构与算法
1513
序,若数组只有一个元素则无需操作。每次递归结束时,左右两个数组都是有序的,然后对这两个中的数据进行排序,使整个数组有序。直到算法结束。publicclassTest8{ publicstaticint
blog
算法-递归实现反转链表
数据结构与算法
2529
链表节点packageclub.test;/****链表节点*@authorjiajia**/publicclassNode{ publicintvalue; publicNodenext
数据结构与算法
1993
算法思想把所有需要排序的数据分成两个集合,一个是待排序集合,一个是已排序的集合,算法每次从未排序集合顺序或随机拿取一个数据,把它加入到已排序集合使其有序,直到未排序集合中的数据被取走完,算法结束案例
数据结构与算法
4600
递归实现合并两递增链表-合并后保持递增序列java描述数据结构:单链表算法:递归链表节点packageclub.test;/****链表节点*@authorjiajia
blog
程序员必须掌握的数据结构和算法
数据结构与算法
2170
原文链接:https://www.zhihu.com/question/23148377?sort=created算法基础 时间复杂度 空间复杂度基础数据结构 线性表 列表(必学) 链表(必学
blog
快速排序 - 数据结构与算法
数据结构与算法
1716
算法思想将待排序集合以该集合中随机的一个数为分界点分成左右两个集合,一次排序使其右边的集合的数据全部大于左边的集合,然后再分别递归式的对左右两个集合执行上述排序操作,直到递归集合没有数据,递归结束完
blog
插入排序 - 数据结构与算法
数据结构与算法
1411
算法思想:把所有需要排序的数据分成两个集合,一个是待排序集合,一个是已排序的集合,算法每次从未排序集合顺序或随机拿取一个数据,把它加入到已排序集合使其有序,直到未排序集合中的数据被取走完,算法结束
blog
数据结构+算法-堆排序
数据结构与算法
4946
堆排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。以最小堆为例下沉操
最新发表
归档
2018-11
12
2018-12
33
2019-01
28
2019-02
28
2019-03
32
2019-04
27
2019-05
33
2019-06
6
2019-07
12
2019-08
12
2019-09
21
2019-10
8
2019-11
15
2019-12
25
2020-01
9
2020-02
5
2020-03
16
2020-04
4
2020-06
1
2020-07
7
2020-08
13
2020-09
9
2020-10
5
2020-12
3
2021-01
1
2021-02
5
2021-03
7
2021-04
4
2021-05
4
2021-06
1
2021-07
7
2021-08
2
2021-09
8
2021-10
9
2021-11
16
2021-12
14
2022-01
7
2022-05
1
2022-08
3
2022-09
2
2022-10
2
2022-12
5
2023-01
3
2023-02
1
2023-03
4
2023-04
2
2023-06
3
2023-07
4
2023-08
1
2023-10
1
2024-02
1
2024-03
1
2024-04
1
2024-08
1
标签
算法基础
linux
前端
c++
数据结构
框架
数据库
计算机基础
储备知识
java基础
ASM
其他
深入理解java虚拟机
nginx
git
消息中间件
搜索
maven
redis
docker
dubbo
vue
导入导出
软件使用
idea插件
协议
无聊的知识
jenkins
springboot
mqtt协议
keepalived
minio
mysql
ensp
网络基础
xxl-job
rabbitmq
haproxy
srs
音视频
webrtc
javascript
加密算法
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。