[存疑]单链表删除结点后不发生断链
问题先放到这里待解决
#include<stdlib.h> #include <algorithm> #include<vector> #include<set> #include <iostream> using namespace std; typedef struct LNode { int data; struct LNode* next; }LNode,*LinkList; LinkList createList() { int x; LinkList l = (LinkList)malloc(sizeof(LNode)); //head LNode* s; l->next = NULL; cin >> x; do { s = (LNode*)malloc(sizeof(LNode)); s->data = x; s->next = l->next; l->next = s; cout << "add new data " << s->data << endl; cin >> x; } while (x > 0); return l; } void dis(LinkList l) { l = l->next; while (l != NULL) { cout << l->data << " "; l = l->next; } cout << endl; } void delectX(LinkList &l, int x) //使用递归 { //cout << "delect" << endl; LNode* s; if (l == NULL) return; if (l->data == x) { s = l; l = l->next; //5 4 1 3 2 1 ,删除第一个1后,4与3之间没有链接了应该会断链啊? free(s); delectX(l, x); } else delectX(l->next, x); } int main() { LinkList l=createList(); dis(l); delectX(l, 1); dis(l); return 0; }
荡尘涤污,重整河山,便在今日

浙公网安备 33010602011771号