首先定义带头结点的单链表
private class Node {
public int value;
public Node nextNode;
public Node(int value) {
this.value = value;
}
}
/**
* 逆置单链表(非递归)
* @param head 头结点
* @return 逆置后的头结点
*/
private static Node revert2(Node head) {
Node pre = head;
Node cur = head.nextNode;
Node tmp;
// 头结点的nextNode应该要置空
pre.nextNode = null;
while (cur != null) {
// 先存放nex结点
tmp = cur.nextNode;
// 修改next结点指向pre
cur.nextNode = pre;
pre = cur;
cur = tmp;
}
return pre;
}
图示