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 reverseCows (ListNode head) {
ListNode prev = null;
ListNode cur = head;
while (cur != null) {
ListNode next = cur.next;
cur.next = prev;
prev = cur;
cur = next;
}
return prev;
}
}
本题知识点分析:
1.链表遍历
2.虚拟头结点
3.数学模拟
本题解题思路分析:
1.prev用于保存前一个结点,cur表示当前节点,next表示下一个节点
2.先让cur.next = prev;因为要翻转,因此当前节点的下一个是前一个结点的地址
3.prev = cur;覆盖地址, cur = next;覆盖地址,其实就是prev和cur分别向后走了一步。
4.最后返回prev

京公网安备 11010502036488号