好吧,基本上来说,当我发送NODE * HEAD作为参数时,该代码基本上不会遍历列表,就像我两次调用该函数一样,它将两次打印整个链接列表,但是我发送NODE ** HEAD并调用print两次,然后第二次将打印NULL,因为它被永久遍历了,为什么?
它变得更加令人困惑,因为如果我尝试在一个带有node * head作为参数的链接列表的末尾添加一个元素,它将永久地将其添加到列表中。为什么在这种情况下,node **头不是必需的,为此也添加了代码。
我已经看了很多,但我真的想不通。
void print(node * head){
while(head!=NULL){
cout<<head->data<<"-->";
head = head->next;
}
cout<<"NULL"<<endl;
}
void inserstAtLAst(node * head,int data){
node * temp = new node(data);
while(head->next!=NULL){
head = head->next;
}
head->next = temp;
}