题解 | #反转链表#
反转链表
https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca?tpId=295&tqId=23286&ru=/exam/oj&qru=/ta/format-top101/question-ranking&sourceUrl=%2Fexam%2Foj
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指针 if(head == null || head.next == null) return head; //定义pre和behind指针,指向链头的下一节点 ListNode pre = head.next, behind = head.next; //把原先的链头的下一地址指向为null(因为原先的链头要变成链尾) head.next = null; //循环执行直至pre指针为空 while(pre != null){ behind = behind.next; //pre链节点的下一地址指向head pre.next = head; head = pre; pre = behind; } return head; } }#刷题记录#