删除链表中的节点

2021-03-27 17:50:57 浏览数 (1)

代码语言:javascript复制
#include<iostream>
#include<vector>
using namespace std;
 struct ListNode {
     int val;
     ListNode *next;
     ListNode(int x) : val(x), next(NULL) {}
  };
 
class Solution {
public:
    void deleteNode(ListNode* node)
    {
        node->val = node->next->val;
        node->next = node->next->next;
    }
};
//测试-----------------
void input(ListNode* l)
{
    int num;
    while (1)
    {
        cin >> num;
        if (num == -1)
            return;
        ListNode* newNode = new ListNode(num);
        newNode->next = l->next;
        l->next = newNode;
    }

}
//头插法----》逆序打印
void display(ListNode* l)
{
    if (l== NULL)
    {
        return;
    }
    display(l->next);
    cout << l->val;
}
void test()
{
    ListNode* l = new ListNode(0);
    input(l);
    Solution s;
   s.deleteNode(l->next->next);//输入1 2 3 ,链表中存储3 2 1 ,递归逆序输出:1 2 3 ,删除2
    cout << "链表打印:" << endl;
    display(l->next);
    cout << endl;
}
int main()
{
    test();
    system("pause");
    return 0;
}

0 人点赞