版权声明: https://blog.csdn.net/bird73/article/details/79948736
代码: https://download.csdn.net/download/bird73/10350235
一共三个java文件
ListNode.java
package com.li;
public class ListNode {
private int data;
private ListNode nextList;
public int getData() {
return data;
}
public void setData(int data) {
this.data = data;
}
public ListNode getNextList() {
return nextList;
}
public void setNextList(ListNode nextList) {
this.nextList = nextList;
}
public ListNode(int data) {
super();
this.data = data;
}
}
ConvertList.java
package com.li;
/**
* 转换工具类
*/
public class ConvertList {
/**
* 链表转换
*/
public static void convertListNode(ListNode node) {
// 临时节点, 用于反转的节点
ListNode preListNode = null;
// 循环交换所有链表数据
while (node != null) {
// 临时存储节点
ListNode item = node.getNextList();
// 调整节点前后位置
node.setNextList(preListNode);
// 将自己保存起来, 后面的元素开始指向自己
preListNode = node;
// 设置再次循环条件
node = item;
}
}
}
ListNodeTest.java
package com.li;
import org.junit.Test;
public class ListNodeTest {
@Test
public void test() {
// 测试
// 1. 创建数据
ListNode listNode1 = new ListNode(1);
ListNode listNode2 = new ListNode(2);
ListNode listNode3 = new ListNode(3);
// 2. 设置链表关系
listNode1.setNextList(listNode2);
listNode2.setNextList(listNode3);
// 3. 循环显示
System.out.println("----------转换前----------");
ListNode listNode = listNode1;
while (listNode != null) {
System.out.println(listNode.getData());// 打印输出
listNode = listNode.getNextList();
}
// 4. 反转链表
ConvertList.convertListNode(listNode1);
// 5. 循环显示
System.out.println("----------转换后----------");
listNode = listNode3;
while (listNode != null) {
System.out.println(listNode.getData());// 打印输出
listNode = listNode.getNextList();
}
}
}
打印结果: