链表
链表
weixin_51146763
这个作者很懒,什么都没留下…
展开
-
142. 环形链表 II (双指针)
题目 环形链表 II 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。 说明:不允许修改给定的链表。 进阶: 你是否可以使用 O(1) 空间解决此题? 示例 1: 输入:head = [3,2,0,-4], pos = 1 输出:返回索引为 1 的链表节点 解释:链原创 2021-02-10 15:09:07 · 111 阅读 · 0 评论 -
206. 反转链表 (双指针法、递归)
题目 反转链表 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 双指针法 只要改变一下next的方向即可。无需再重新建一个链表。 /** * Definition for singly-linked list. * struct ListNode { * int val; * L原创 2021-02-10 11:11:09 · 108 阅读 · 0 评论 -
203. 移除链表元素 (虚拟头结点)
题目 移除链表元素 删除链表中等于给定值 val 的所有节点。 示例: 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4->5 常规解法 要判断删除的是否为头结点。 class Solution { public: ListNode* removeElements(ListNode* head, int val) { //头结点需要删除 while (head原创 2021-02-09 15:13:22 · 65 阅读 · 0 评论 -
链表基础内容
链表的定义 //单链表 struct listNode { int data; //该节点上存储的元素 listNode *next; //指向下一个节点的指针 listNode(int x) : data(x), next(NULL) {} //节点的构造函数 }; 如果不定义构造函数,初始化就不能直接给变量赋值。 自己定义构造函数初始化节点: listNode* head = new listNode(5); 使用默认函数初始化节点: listNode* head = new listNode原创 2021-02-09 10:56:21 · 72 阅读 · 0 评论