为什么在链表中使用动态分配?

  • 本文关键字:动态分配 链表 c++
  • 更新时间 :
  • 英文 :


在链表类中,下面的代码声明Node<T> *newNode:

void LinkedList<T>::push_front(const T& val) {
Node<T> *newNode = new Node<T>(val);
newNode->next = head;
head = newNode;
if(newNode->next == NULL) tail = newNode;
}

为什么使用动态分配?我们不能只写Node<T> newNode(val);吗?

我认为既然我们没有制作newNode的数组,它是有效的。

局部变量(如Node<T> newNode(val);)在退出函数时将被销毁(或者更确切地说,在退出创建它的作用域时(即大括号,或多或少)。

但是对于链表,你希望节点活得更长;只要你愿意,就可以。

最新更新