Hello大家好,今天和大家分享一道比较简单的普通题,然后昨天和大家介绍的数据结构的线性表结构当中我们说到了第一种顺序存储结构是数组。那线性表结构不止是只有顺序存储结构,还包括链式存储结构。
(图片来自百度)
我们可以理解链式存储结构的每一个节点有一个位置是保存结点的值,另外一个位置保存的是结点指向下一个位置的指针。大家如果想了解更多的内容,可以去Pybook频道查看相对应的数据结构——线性表之链式存储。
不知道今天Leetcode每日一题的内容大家看了没有呀,是一道关于dfs深度优先搜索,因为今天这道题有一点难度,所以留一点时间给大家,我们先把链式存储的内容解决掉!
我们都知道,线性表(无论是顺序存储的数组,还是链式存储的链表)涉及的内容有数组以及链表的创建和删除,并且还有元素的增删改查等操作。数组的增删改查的操作比较容易,今天我想和大家介绍的这道题就是基于链表元素删除的知识点设定的题,题目的内容如下:
(图片来自Leetcode)
这道题我们需要创建一个cur结点用来保存head结点,然后通过while循环不断地遍历:
While 节点.next:
然后判断每一个节点的值是否和下一个相同,如果相同的话就直接将结点放到下下个位置,题目的代码如下:如果大家有更好的方法欢迎在评论区和我讨论哇!
class Solution:
def deleteDuplicates(self, head: Optional[ListNode]) -> Optional[ListNode]:
if not head:
return head
cur = head
while cur.next:
if cur.val == cur.next.val:
cur.next = cur.next.next
else:
cur = cur.next
return head
另外,欢迎大家关注我的公众号GoyooPython,在那里我会每天和大家分享一些比较精彩的内容,然后和大家一起进步和成长~加油加油加油!