亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

C語言reverse鏈表操作怎么做

小樊
83
2024-06-24 09:35:27
欄目: 編程語言

要實現一個反轉鏈表的操作,可以按照以下步驟進行:

  1. 定義一個函數來實現鏈表的反轉操作,函數的輸入參數是鏈表的頭指針,并且函數的返回值也是鏈表的頭指針。

  2. 遍歷整個鏈表,將每一個節點的指針方向反轉,即將每個節點的next指針指向其前一個節點。

  3. 使用三個指針分別指向當前節點、前一個節點和下一個節點,通過循環不斷更新這三個指針的位置,直到遍歷完整個鏈表。

  4. 最后返回反轉后的鏈表的頭指針即可。

下面是一個示例代碼實現:

#include <stdio.h>

struct ListNode {
    int val;
    struct ListNode *next;
};

struct ListNode* reverseList(struct ListNode* head) {
    struct ListNode *prev = NULL;
    struct ListNode *current = head;
    struct ListNode *next = NULL;

    while (current != NULL) {
        next = current->next;
        current->next = prev;
        prev = current;
        current = next;
    }

    return prev;
}

int main() {
    // 構建一個簡單的鏈表 1 -> 2 -> 3 -> 4 -> 5
    struct ListNode *node1 = (struct ListNode*)malloc(sizeof(struct ListNode));
    struct ListNode *node2 = (struct ListNode*)malloc(sizeof(struct ListNode));
    struct ListNode *node3 = (struct ListNode*)malloc(sizeof(struct ListNode));
    struct ListNode *node4 = (struct ListNode*)malloc(sizeof(struct ListNode));
    struct ListNode *node5 = (struct ListNode*)malloc(sizeof(struct ListNode));

    node1->val = 1;
    node1->next = node2;
    node2->val = 2;
    node2->next = node3;
    node3->val = 3;
    node3->next = node4;
    node4->val = 4;
    node4->next = node5;
    node5->val = 5;
    node5->next = NULL;

    // 反轉鏈表
    struct ListNode *reversedHead = reverseList(node1);

    // 遍歷鏈表輸出反轉后的結果
    struct ListNode *current = reversedHead;
    while (current != NULL) {
        printf("%d ", current->val);
        current = current->next;
    }

    return 0;
}

在這個示例代碼中,我們構建了一個簡單的鏈表1 -> 2 -> 3 -> 4 -> 5,并調用reverseList函數對鏈表進行反轉操作,最后輸出反轉后的結果。

0
宝坻区| 新竹县| 宕昌县| 吴川市| 双牌县| 怀集县| 托克托县| 惠安县| 龙南县| 东乌珠穆沁旗| 凌源市| 阜平县| 荔浦县| 涿州市| 汉沽区| 江北区| 安宁市| 乐亭县| 阳谷县| 辉南县| 肇庆市| 化州市| 青海省| 香河县| 兰西县| 漳州市| 利辛县| 新蔡县| 莱西市| 栖霞市| 尚志市| 乌拉特中旗| 海宁市| 昌平区| 南郑县| 德格县| 泗水县| 山丹县| 临泉县| 镇安县| 太仆寺旗|