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

溫馨提示×

C語言鏈表復制的方法是什么

小億
123
2023-11-22 15:01:40
欄目: 編程語言

復制鏈表的一種常見方法是遍歷原鏈表,創建一個新節點,并將原鏈表節點的值復制到新節點中,然后將新節點連接到新鏈表中。具體步驟如下:

  1. 創建一個指向原鏈表頭節點的指針p
  2. 創建一個新鏈表的頭節點newHead和尾節點newTail,并將它們初始化為NULL
  3. 使用循環遍歷原鏈表,直到p指向NULL
    • 在每次循環中,創建一個新節點newNode,并將原鏈表節點p的值復制到newNode中。
    • newNodenext指針指向NULL
    • 如果newTailNULL,則將newNode設置為新鏈表的頭節點newHead,并將newTail指向newNode
    • 否則,將newNode連接到新鏈表的尾部,即將newTailnext指針指向newNode,并更新newTailnewNode
    • p指向下一個節點,即p指向pnext
  4. 返回新鏈表的頭節點newHead

下面是使用C語言實現的示例代碼:

#include <stdio.h>
#include <stdlib.h>

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

struct ListNode* copyList(struct ListNode* head) {
    struct ListNode *p = head;
    struct ListNode *newHead = NULL;
    struct ListNode *newTail = NULL;

    while (p != NULL) {
        struct ListNode *newNode = (struct ListNode*)malloc(sizeof(struct ListNode));
        newNode->val = p->val;
        newNode->next = NULL;

        if (newTail == NULL) {
            newHead = newNode;
            newTail = newNode;
        } else {
            newTail->next = newNode;
            newTail = newNode;
        }

        p = p->next;
    }

    return newHead;
}

使用該方法可以復制一個鏈表并返回新鏈表的頭節點。

0
陆河县| 晋州市| 衢州市| 海伦市| 西青区| 曲靖市| 清流县| 中西区| 凭祥市| 育儿| 佛山市| 元江| 霍林郭勒市| 常州市| 鹤壁市| 噶尔县| 乌鲁木齐县| 张家港市| 靖安县| 汕尾市| 屏山县| 南江县| 贵德县| 江口县| 垫江县| 册亨县| 定南县| 塔河县| 基隆市| 伊吾县| 郑州市| 普兰店市| 凤山市| 东兴市| 闵行区| 博罗县| 灵石县| 鹰潭市| 衡山县| 双柏县| 白银市|