iT邦幫忙

0

Copy constructor 鏈接串列

  • 分享至 

  • xImage

已有給定好的 List 如下:
class ListNode {
int data;
ListNode *next;
public:
int getData() const { return data; }
ListNode *getNext() const { return next; }
ListNode(int num): data(num), next(NULL) {}
ListNode(int num, ListNode *link): data(num), next(link) {}
ListNode(const ListNode &head);
};

題目為實作其 Copy constructor ,令 ListNode 會複製整段資料,而非單個節點。
ListNode::ListNode(const ListNode &head) {

?????

}

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
JamesDoge
iT邦高手 1 級 ‧ 2022-12-31 00:34:27

題目為實作其 Copy constructor ,令 ListNode 會複製整段資料,而非單個節點。

ListNode::ListNode(const ListNode &head) {
  // 先複製當前節點的資料
  data = head.data;
  next = NULL;  // 設定 next 指標為 NULL

  // 建立新的 ListNode 物件,指向 head 的下一個節點
  ListNode *tail = this;
  ListNode *curr = head.next;
  while (curr != NULL) {
    tail->next = new ListNode(curr->data);
    tail = tail->next;
    curr = curr->next;
  }
}

我要發表回答

立即登入回答