已有給定好的 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) {
?????
}
題目為實作其 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;
}
}