题解 | #反转链表#java
反转链表
https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
import java.util.*;
/*
* public class ListNode {
* int val;
* ListNode next = null;
* public ListNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head ListNode类
* @return ListNode类
*/
public ListNode ReverseList (ListNode head) {
// write code here
//首先定义前置结点指向为空,头结点指向形参中的头结点head
ListNode pre = null;
ListNode pHead=head;
//使用while循环判断头结点是否指向空,当头结点的指针域指空时循环结束
//此时链表中的pHead指向末尾结点,链表遍历结束
while( pHead != null ){
//将temp指针变量指向pHead.next(头结点的下一个结点),此时pHead.next=null
ListNode temp = pHead.next;
//将pHead.next(头结点的下一个结点的指针域)指向前置结点pre,此时pHead.next结点为前置结点
//实现顺序反转
pHead.next=pre;
//再将pHead结点和pHead.next结点的指针以此指向后一个结点
pre = pHead;
pHead = temp;
//此时pHead.next结点已经被temp结点所替代,而pHead.next结点反转后变成了pre前置结点
}
//循环结束后链表内的结点实现全部反转,此时返回前置结点即可
return pre;
}
}
#反转链表java#
曼迪匹艾公司福利 140人发布