當前位置:網站首頁>【打卡第202道】【鏈錶】【leetCode高頻】:劍指 Offer 24. 反轉鏈錶

【打卡第202道】【鏈錶】【leetCode高頻】:劍指 Offer 24. 反轉鏈錶

2022-01-27 05:47:52 CodingLJ

1、題目描述

定義一個函數,輸入一個鏈錶的頭節點,反轉該鏈錶並輸出反轉後鏈錶的頭節點。

2、算法分析

①定義pre指針指向的是head的前一個結點

②定義p指針指向head結點

③遍曆:

        p指向head.next

        head.next = pre:反轉方向 

        // pre指向head

            pre = head;

            // head = p,繼續往後走

            head = p;

 

3、代碼實現

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode reverseList(ListNode head) {
        // 指向鏈錶頭結點的前一個比特置
        ListNode pre = null;
        // 指向頭指針
        ListNode p = head;
        // 當head不為null的時候
        while(head != null){
            // p指針指向的是head的下一個結點
            p = head.next;
            // 反轉方向,head.next = pre;
            head.next = pre;
            // pre指向head
            pre = head;
            // head = p,繼續往後走
            head = p;
        }
        return pre;
    }
}

版權聲明
本文為[CodingLJ]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201270547520971.html

隨機推薦