题解 | #牛牛的链表删除#

牛牛的链表删除

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")

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务