knrt.net
当前位置:首页 >> jAvA中如何找到单链表中结点p的前驱结点? >>

jAvA中如何找到单链表中结点p的前驱结点?

比较暴力的解法,遍历链表,如果节点q的后继是p,就能得出p的前驱是q

q->next表示结点中存放的指针,该指针用来指向某个结点。 原来的连接关系是q->next=p,意思是q中存放的指针的值是p,即q指向p。 比如:原来排队p在q的后面,现在要插一个s在他们中间,需要做的事就是把原来p,q二人的联系转化为p,s,q三人的联...

用指向指针的指针**ptr1和**ptr2,分别获取p结点前的两个结点地址,然后 ptr1->next = ptr2->next; free(ptr2);

因为p所指结点是q所指结点的前驱结点,也就是p---->next=q;要想删除结点q,则只需将P---->next =q---->next 即可

s->next=p; q->next=s;

C

head->next=尾节点,尾节点->next=p,所以head->next->next=p,head = *(p->next)->next

嘿嘿,偷梁换柱,将p->next 的内容copy到p;定义中间变量指针指向p->next;然后将p->next=p>next->next;free(temp);看似简单,不容易想到

1

DeleteNode( Node* L, int x) { Node* p,q,r; p = q = r = L; while(p->next ! = NULL) { p = p ->next; if(p->data == x) break; r = q; q = p; } delete q; r->next = p; }

网站首页 | 网站地图
All rights reserved Powered by www.knrt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com