gpt4 book ai didi

arrays - 将链表转换为数组(伪代码)

转载 作者:行者123 更新时间:2023-12-01 05:02:12 24 4
gpt4 key购买 nike

我正在研究算法,一个练习要求我将链表转换为数组(使用伪代码),这就是我所做的:

convert_LL_array (List, array)
i = 0
current = List.start

while (current != null)
array[i] = current->data
current = current->next
i++

return array

这是答案:
convert_LL_array (List, array)
i = 0
current = List.start

while (current->next != null)
array[i] = current->data
current = current->next
i++

return array

与“null”相比,为什么要使用“current->next”?我认为这不会将最后一个元素添加到数组中。

最佳答案

你的伪代码似乎是正确的,没有错。正如蒂姆指出的那样,如果链表中只有一个元素,其他答案将不起作用。我只想补充一点,你可以检查完整的代码下面的链接,如果您还有任何困惑。
https://ideone.com/qN1HBZ

struct ListNode{
int data;
struct ListNode* next;
ListNode(int val):data(val),next(NULL){}
};

void convertLLtoArray(ListNode* head, vector<int>&arr){
//if there is no element then return
if(head==NULL)return;
//crawling pointer
ListNode* crawl = head;
//iterate until list pointer become NULL
while(crawl!=NULL){
arr.push_back(crawl->data);
crawl = crawl->next;
}
return;
}

关于arrays - 将链表转换为数组(伪代码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31931074/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com