算法-递归实现反转链表

硅谷探秘者 2225 0 0


链表节点

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




评论区
请写下您的评论...
暂无评论...
猜你喜欢
数据结构与算法 7709 有一个单向t如下:t=1-2-3-4-5-6-7-8-9写一个方t如下:1-2-3-4-5-6-7-8-9=tjava代码:packagetest;/*** 节点类
数据结构与算法 4330 合并两-合并后保持增序列java描述数据结构:单节点packageclub.test;/****节点*@authorjiajia
数据结构与算法 4766 全排列c++描述#includeiostreamusingnamespacestd;//交换voidexchange(int*a,inti,intj){if(i==j){return
数据结构与算法 1244 思想该使用,思路为:每次将待排序数组在中间位置分成左右两组,分别对左右两个数组进行并排序,的条件是数组长度必须大于等于3,所以当数组中只有两个数据的时候可以直接进行比较排
数据结构与算法 1710 代码:数组a是未排序集合,已排序的集合是逻辑上的一个集合,可以看作是head,是一个双向,add方向集合添加数据,每次找到对应的位置,使有序,toArray方使已排序的集合输出成int数
数据结构与算法 5017 整理二叉树的遍历-()和(非)-笔记先序遍历、中序遍历、后续遍历、层级遍历。1.节点信息:packagetree;publicclassNodeE{ privateEe;//数据域
official 737 ,请你返回翻后的。k是一个正整数,它的值小于或等于的长度。如果节点总数不是k的整数倍,那么请将最后剩余的节点保持原有顺序。示例:给你这个:1-2-3-4-5当k=2时,应当返回:2-1-
数据结构与算法 10218 节点先判断hashMap中是否存在这个节点,如果不存在就把这个节点放入hashMap中,如果存在证明这个是存在环的,并且这个节点就是环的入口。这个应该很好理解,也很好。当然这也是方案之一,也是很
归档
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
标签
算法基础 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
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。