java之反转链表
作者:互联网
链表类
/**
链表的节点
*/
public class ListNode {
public ListNode next;
public Integer val;
public ListNode() {
}
public ListNode(int val) {
this.val = val;
}
@Override
public String toString() {
return val + "";
}
}
反转思路
反转代码需要先保存下一节点(nextNode),防止断链,whille循环当当前节点不为null,将当前节点(nowNode)的指针指向前一节点(preNode ),改变前一节点(preNode) 的值为当节点(nowNode),再改变当前节点(nowNode)为下一节点也就是最初保存的(nextNode)的值,
/**
* 反转链表
* 输入一个链表,反转链表后,输出新链表的表头。
*/
public class Solution {
public ListNode
ReverseList(ListNode head) {
if (head == null) {
return null;
}
ListNode nowNode = head;
ListNode preNode = null;// 正向
while (nowNode != null) {
ListNode nextNode = nowNode.next;//暂存
nowNode.next = preNode;
//为下一次循环做准备
preNode = nowNode;
nowNode = nextNode;
}
return preNode;
}
}
标签:ListNode,反转,节点,链表,java,nowNode,preNode,public 来源: https://blog.csdn.net/weixin_56219549/article/details/120685586