你的理解是对的,q=p->next多余。
本来q就是p->next,何必再赋一遍值。
我个人认为你在书上例子上看到的p,q,b三个连续链表节点,实际上在单链表的删除操作上一般是不会定义那么多个指针变量的,其中一个遍历指针变量指向p后,q变量指向p变量的下一个节点(删除用)。如果已确定这3个相邻的连续节点为p,q,b的话,可以直接用p->next=q->next;实现删除q的效果。
我想知道的是,这三个节点是已经找到的吗?一开始不需要查找,p q b就是排列好的,三个指针都是存在的,不是遍历需找的结果??
如果是,那 q = p->next就是多余的。
如果不是,那可能通过p来指向删除节点的前一节点,q指向要删除的节点,那么就不是多余的。否则删除后的节点,你找不到了,要是后面想用,就找不到了。
你的是哪本书额?
讲数据结构的书中,伪代码很多,有时确实很蛋疼。
是严蔚敏版本吗、?