While declaring a link list, why do we create a new Node using Node* node = new Node(value)
? Can't we simply use Node node(val)
if not, then why? and if we can, what are changes to our code we will have to make while using later syntax, for basic operations on link lists?
I was revising link list, and although I can solve the questions, I was confused with this syntax.
Node node(val);
allocates memory in the stack, can't be used after the function completes
Node* node = new Node(val);
allocates memory in the heap, and can be used untildelete
is calledThis post is heavily downvoted because this is a basic thing to know before trying to implement linked lists.