LeetCode
数据结构
GYBSO
把大脑当索引,笔记当数据库。用面向对象的思想去专注学习。注重提高自己的独立思考,解决问题能力。不把大脑当存粹的存储工具。
展开
-
线性表——删除链表的节点
剑指 Offer 18. 删除链表的节点 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 注意:此题对比原题有改动 示例 1: 输入: head = [4,5,1,9], val = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9. 示例 2: 输入: head = [4,5,1,9], val = 1 输出: [4,5,9] 解释: 给定你链表中值为 1 的原创 2020-09-16 22:41:49 · 757 阅读 · 1 评论 -
线性表——反转链表
剑指 Offer 24. 反转链表 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 限制: 0 <= 节点个数 <= 5000 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListN原创 2020-09-15 23:37:09 · 276 阅读 · 0 评论 -
线性表——移出链表元素
移出链表元素 删除链表中等于给定值 val 的所有节点。 示例: 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4->5 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NU原创 2020-09-10 23:39:10 · 615 阅读 · 0 评论 -
线性表——合并两个有序链表
合并两个有序链表递归实现常规实现 递归实现 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next原创 2020-09-08 23:37:11 · 258 阅读 · 0 评论