数据结构与算法-反转链表-递归法

硅谷探秘者 7727 0 0
反转链表

有一个单向链表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;
	}
}

 


评论区
请写下您的评论...
暂无评论...
猜你喜欢
数据结构与算法 1270 序,若组只有一个元素则无需操作。每次束时,左右两个组都是有序的,然后对这两个中的进行排序,使整个组有序。直到束。publicclassTest8{ publicstaticint
数据结构与算法 2247 节点packageclub.test;/****节点*@authorjiajia**/publicclassNode{ publicintvalue; publicNodenext
数据结构与算法 1737 思想把所有需要排序的分成两个集合,一个是待排序集合,一个是已排序的集合,每次从未排序集合顺序或随机拿取一个,把它加入到已排序集合使其有序,直到未排序集合中的被取走完,束案例
数据结构与算法 4345 实现合并两-合并后保持增序列java描述:单节点packageclub.test;/****节点*@authorjiajia
数据结构与算法 1835 原文接:https://www.zhihu.com/question/23148377?sort=created基础 时间复杂度 空间复杂度基础 线性(必学) (必学
数据结构与算法 1456 思想将待排序集合以该集合中随机的一个为分界点分成左右两个集合,一次排序使其右边的集合的全部大于左边的集合,然后再分别式的对左右两个集合执行上述排序操作,直到集合没有束完
数据结构与算法 1164 思想:把所有需要排序的分成两个集合,一个是待排序集合,一个是已排序的集合,每次从未排序集合顺序或随机拿取一个,把它加入到已排序集合使其有序,直到未排序集合中的被取走完,
数据结构与算法 4677 堆排序(英语: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
标签
算法基础 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
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。