同学,你要搞清楚,我打个比方
h前面那个结点假如是 y
那么,y->next=h对吧
当这个函数运行到y那个结点时,调用函数s_delnode( y->next, x );
这里局部变量h就等y->next对吧,然后你再看看你这个函数的定义 int s_delnode( LinkList *&h, ElemType x ) 这里面用的可是“&”引用符号啊,引用符号是啥意思?就是说如果在这个函数里你改变了h的值,就相当于也改变了传进去的y->next的值,h=h->next就等于是在说y->next=y->next->next,所以就是h前面的结点指向h后面的结点了
当然。。如果你不信的话,你可以把int s_delnode( LinkList *&h, ElemType x ) 这个函数定义,改成int s_delnode( LinkList *h, ElemType x ) 再试试,这样肯定不对了,因为少了“&”的符号,如果还是不懂,建议你去查查“&”运算符的作用