算法-递归实现反转链表
链表节点
package club.test;
/***
* 链表节点
* @author jiajia
*
*/
public class Node {
public int value;
public Node next;
public Node(int value, Node next) {
super();
this.value = value;
this.next = next;
}
}
算法实现
package club.test;
/***
* 反转一个链表,返回新链表的首节点
* @author jiajia
*
*/
public class TestMain2 {
public static void main(String[] args) {
Node list=new Node(1,new Node(3,new Node(5,null)));
//待反转链表
Node n=reversal(list);
//反转后链表的头节点
while(true) {
if(n!=null) {
System.out.print(n.value+" ");
n=n.next;
continue;
}
return;
}
}
/**
* 核心递归算法
* @param head 当前链表的头节点
* @return 返回新链表的头节点
*/
public static Node reversal(Node head) {
if(head==null||head.next==null) {
return head;
}else {
Node next=head.next;
head.next=null;
Node no=reversal(next);
next.next=head;
return no;
}
}
}
当前案例输出:5 3 1
评论区
请写下您的评论...
猜你喜欢
blog
数据结构与算法-反转链表-递归法
数据结构与算法
8005
反转链表有一个单向链表t如下:t=1-2-3-4-5-6-7-8-9写一个方法反转链表t如下:1-2-3-4-5-6-7-8-9=tjava代码:packagetest;/*** 节点类
数据结构与算法
4600
递归实现合并两递增链表-合并后保持递增序列java描述数据结构:单链表算法:递归链表节点packageclub.test;/****链表节点*@authorjiajia
blog
递归实现全排列算法 c++描述
数据结构与算法
5071
递归实现全排列算法c++描述#includeiostreamusingnamespacestd;//交换voidexchange(int*a,inti,intj){if(i==j){return
blog
归并排序(递归)- 数据结构与算法
数据结构与算法
1513
算法思想该算法使用递归法实现,思路为:每次递归将待排序数组在中间位置分成左右两组,分别对左右两个数组进行归并排序,递归的条件是数组长度必须大于等于3,所以当数组中只有两个数据的时候可以直接进行比较排
数据结构与算法
1993
代码:数组a是未排序集合,已排序的集合是逻辑上的一个集合,可以看作是head,实现是一个双向链表,add方法向集合添加数据,每次找到对应的位置,使链表有序,toArray方法使已排序的集合输出成int数
blog
二叉树的遍历-(递归法)和(非递归法)
数据结构与算法
5308
整理二叉树的遍历-(递归法)和(非递归法)-笔记先序遍历、中序遍历、后续遍历、层级遍历。1.节点信息:packagetree;publicclassNodeE{ privateEe;//数据域
ofc
K 个一组翻转链表
official
966
转,请你返回翻转后的链表。k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k的整数倍,那么请将最后剩余的节点保持原有顺序。示例:给你这个链表:1-2-3-4-5当k=2时,应当返回:2-1-
blog
程序员必须掌握的数据结构和算法
数据结构与算法
2170
原文链接:https://www.zhihu.com/question/23148377?sort=created算法基础 时间复杂度 空间复杂度基础数据结构 线性表 列表(必学) 链表(必学
最新发表
归档
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
加密算法
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。