题解 | #牛牛的链表删除#
牛牛的链表删除
https://www.nowcoder.com/practice/d3df844baa8a4c139e103ca1b1faae0f
#include <iostream> using namespace std; struct list{ int data; list *next; }; list* createlist() { list *head = (list*)malloc(sizeof(list)); head->next = NULL; return head; } void addnode(list* head,int data) { list *newnode = (list*)malloc(sizeof(list)); newnode->data = data; newnode->next = NULL; list *temp; for(temp = head;temp->next!=NULL;temp = temp->next); temp->next = newnode; } void deletenode(list *head,int n) { list *temp = head; if(temp->next == NULL) { cout<<"no node"; } else if((temp->next->next == NULL) && (temp->next->data == n)) { temp->next = NULL; } else { list *temp1 ; for(temp1 = temp->next;temp1!=NULL;) { if(temp1->data == n) { temp->next = temp1->next; temp1 = temp1->next; } else { temp = temp->next; temp1 = temp1->next; } } } } int main() { int n; cin>>n; int deletenum; cin>>deletenum; int arr[10] = {0}; for(int i=0;i<n;i++) { cin>>arr[i]; } list* head = createlist(); for(int j=0;j<n;j++) { addnode(head,arr[j]); } deletenode(head, deletenum); list *temp = head; while(temp->next!=NULL) { cout<<temp->next->data<<" "; temp = temp->next; } return 0; } // 64 位输出请用 printf("%lld")