做网站怎么字体全部变粗了,基金从业培训网站,乐山市建设银行网站,建网站域名怎么买目录 1. 题目#xff1a;2. 我的代码#xff1a;小结#xff1a; 1. 题目#xff1a; 给你一个链表的头节点 head 和一个整数 val #xff0c;请你删除链表中所有满足 Node.val val 的节点#xff0c;并返回 新的头节点 。
示例 1#xff1a; 输入#xff1a;head [… 目录 1. 题目2. 我的代码小结 1. 题目 给你一个链表的头节点 head 和一个整数 val 请你删除链表中所有满足 Node.val val 的节点并返回 新的头节点 。
示例 1 输入head [1,2,6,3,4,5,6], val 6 输出[1,2,3,4,5] 示例 2 输入head [], val 1 输出[] 示例 3 输入head [7,7,7,7], val 7 输出[] 2. 我的代码
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val0, nextNone):
# self.val val
# self.next next
class Solution:def removeElements(self, head: Optional[ListNode], val: int) - Optional[ListNode]:pre_head ListNode()pre_head.next head# 开始位置slow_i pre_headfast_i pre_head.nextwhile fast_i:if fast_i.val ! val: slow_i.next fast_islow_i slow_i.nextfast_i fast_i.nextslow_i.next Nonereturn pre_head.next这个与数组去除元素类似唯一的区别在于链表节点会保留原来的链式关系所以最后一个元素可能去除不了。在循环中最后一个元素如果是和val一样则不会让慢指针指向它。但是就是刚才说的链表节点会保留原来的链式关系。任然会保留最后一个是val的元素所以需要在循环结束后将慢指针的新链表的最后一个节点设置为空slow_i.next None。
小结 关注我给大家分享更多有趣的知识以下是个人公众号提供 ||代码兼职|| ||代码问题求解|| 添加我的公众号即可