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三人的联...

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

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

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

C

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; }

#include "stdio.h" typedef struct Node{ Datetype data; struct Node *next; }node; int Del(int x,node *first) {//first为单链表头指针,返回值1表示操作成功,0表示失败 node *p,*q,*r; p=first; q=NULL; r=NULL; if(!p||p->data==x)return ...

不行的,错在free(Q)无意义。你代码相当不具有可读性。。。

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