链 表

2024-01-03 01:21:58

3_1 删除链表中的节点

Answer-将被删节点下一个val复制到待删除节点,然后将待删节点直接连接到下下一个节点即可。

学到:

/**

?*?Definition?for?singly-linked?list.

?*?struct?ListNode?{

?*?????int?val;

?*?????ListNode?*next;

?*?????ListNode(int?x)?:?val(x),?next(NULL)?{}

?*?};

?*/

c++中结构体可以看作一个权限为public的类。其拥有成员变量、成员函数、构造函数等。

ListNode(int?x)?:?val(x),?next(NULL)?{}就是构造函数的列表初始化操作。

3_2 删除链表的倒数第N个节点,给你一个链表,删除链表的倒数第?n?个结点,并且返回链表的头结点。

My-获取长度再跑到待删除节点前节点进行删除即可

Answer-快慢指针、栈

学到:初始化一个链表

结构体:

struct ListNode{
?? ?int val;
?? ?ListNode* next;
?? ?ListNode() : val(0), next(nullptr) {}
?? ?ListNode(int x) : val(x), next(nullptr) {}
?? ?ListNode(int x, ListNode* next) : val(x), next(next) {}
};

初始链表并链上:

ListNode* head[5];
for (int i = 0; i < 6; i++)
{
?? ?head[i] = new ListNode(i + 1);
}
for (int i = 0; i < 6; i++)
{
?? ?head[i]->next = head[i + 1];
}
head[5]->next = nullptr;

注意:结构体声明再.h中只需要include? .h即可不用包含.cpp文件,不然会导致多重定义的符号的错误。

文章来源:https://blog.csdn.net/qq_55414382/article/details/135342185
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。