LeeCode203(移除链表元素)
每日一题——LeeCode203(移除链表元素)
203.移除链表元素
难度:简单
给你一个链表的头节点 head
和一个整数 val
,请你删除链表中所有满足 Node.val == val
的节点,并返回 新的头节点 。
示例 1:
1 | 输入: head = [1,2,6,3,4,5,6], val = 6 |
示例 2:
1 | 输入: head = [], val = 1 |
示例 3:
1 | 输入: head = [7,7,7,7], val = 7 |
思路:
链表理论基础
链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域,另一个是指针域(存放指向下一节点的指针),最后一个节点的指针指向NULL(空指针)。
链表的入口点称为链表的头节点,也就是head.
删除节点:
添加节点:
链表与数组的性能分析:
用python定义链表
链表节点的定义,很多同学在面试的时候都写不好。
这是因为平时在刷leetcode的时候,链表的节点都默认定义好了,直接用就行了,所以同学们都没有注意到链表的节点是如何定义的。
而在面试的时候,一旦要自己手写链表,就写的错漏百出。
1 | class ListNode: |
代码实现
1 | # Definition for singly-linked list. |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 马思硕!