题目描述
有链表结构定义如下:
@Data
public class LinkedNode {
private LinkedNode next;
private int a;
public LinkedNode(int a) {
this.a = a;
}
}
现有链表如下,将此链表反转

非递归方法--遍历修改指针指向
这种方式的思想就是遍历一圈,修改指针,使用一个临时的pre节点存储下一次要修改的节点,一直到链表的末梢就实现了链表的反转
public LinkedNode reverse(LinkedNode head) {
// 代表返回时的头节点
LinkedNode result = null;
// 存储当前节点
LinkedNode current = head;
while (current != null) {
// 记录下一个节点
LinkedNode pre = current.next;
current.next = result;
result = current;
// 移步下一个节点,继续循环
current = pre;
}
return result;
}
网友评论