题解 | #牛群的颠倒排列#

牛群的颠倒排列

https://www.nowcoder.com/practice/bd610bea9cbf4de2a9be25646f1f69f6?tpId=363&tqId=10605822&ru=/exam/oj&qru=/ta/super-company23Year/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 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

本题使用编程语言: Java

全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务