创建单项链表,然后实现单项链表逆序

// 创建一个任意数目的单项链表,每项的位置作为自己的初始数据
// 返回链头
	Node initLink(int num){
		Node head = new Node();
		head.data = 1;
		Node temp1 = head;
		for(int i = 2; i<=num; i++){
			// 创建第二个
			Node temp2 = new Node();
			temp2.data = i;
			// 第一个指向第二个
			temp1.next = temp2;
			// 把第二个作为下一轮的第一个
			temp1 = temp2;
		}
		return head;
	}




// 输出单项链表的全部数据
	void display(Node head){
		if(head == null){
			System.out.println("No any nodes!");
		}
		Node curNode = head;
		while(curNode.next != null){
			System.out.println(curNode.data);
			curNode = curNode.next;
		}
		System.out.println(curNode.data);
	}




// 倒叙链表,返回新的链头
Node reverseLink(Node head){
		// 存起第一个
		Node temp1 = head;
		// 存起第二个
		Node temp2 = head.next;
		// 第一个前面清空,作为尾
		temp1.next = null;
		while(temp2.next != null){
			// 存起第三个
			Node temp3 = temp2.next;
			// 第二个指向第一个
			temp2.next = temp1;
			// 第二个作为下一轮第一个
			temp1 = temp2;
			// 第三个作为下一轮第二个
			temp2 = temp3;
		}
		temp2.next = temp1;
		// 最尾的作为头,返回新的头
		return temp2;
	}

// 测试代码
public static void main(String[] args) {
		Node head = initLink(10);
		
		System.out.println("Step1");
		display(head);
		
		head = reverseLink(head);
		
		System.out.println("Step2");
		display(head);
		
		System.out.println("Finish");
	}



最后的输出:
Step1
1
2
3
4
5
6
7
8
9
10
Step2
10
9
8
7
6
5
4
3
2
1
Finish
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DvLee1024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值