gpt4 book ai didi

pointers - Dart编程中的链接列表,如何在Dart中处理指针或如何在堆上存储变量?

转载 作者:行者123 更新时间:2023-12-03 04:33:07 25 4
gpt4 key购买 nike

我总是得到空值。我是这种语言的初学者。谢谢你的理解。

class Node{
int data;
Node next;

Node(int value){
data = value;
}
}

void addNode(Node headNode, int aValue){
Node newNode = new Node(aValue); //creating new node
newNode.next = headNode; // pointing the next to headNode
headNode = newNode; // updating the head Node
}

void main(){
Node head = Node(1);
addNode(head,2);
addNode(head,3);

print(head.next.data); //here I always get null
}
您的帮助将不胜感激。

最佳答案

考虑在哪里更新headNode的值。您到底要分配什么?headNode具有功能范围,这意味着它仅存在于addNote函数内。同样,head函数中的main也具有函数作用域,因此只能在您的main函数中访问。
似乎您正在尝试从head中更新addNode,但这不是您要的。
一种可能的解决方案是从addNode返回新创建的节点,并使用返回的值在head函数中重新分配main。它看起来像这样:

Node addNode(Node headNode, int aValue){
Node newNode = new Node(aValue);
newNode.next = headNode;
return newNode;
}

void main(){
Node head = Node(1);
head = addNode(head,2);
head = addNode(head,3);

print(head.next.data);
}
需要考虑的另一件事:当执行到达程序末尾时,列表是什么样的?是 [1] > [2] > [3]还是 [3] > [2] > [1]

关于pointers - Dart编程中的链接列表,如何在Dart中处理指针或如何在堆上存储变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64583185/

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