当前位置: 首页 > wzjs >正文

万江仿做网站网站开发工程师

万江仿做网站,网站开发工程师,做淘客网站多少钱,wordpress ip验证不当漏洞华子目录 移除链表元素思路 设计链表思路 翻转链表思路 移除链表元素 https://leetcode.cn/problems/remove-linked-list-elements/ 思路 问题:如果我们删除的元素是除头结点的其他元素,我们只需要将被删除元素的上一个节点的next指向被删除元素的下一…

华子目录

  • 移除链表元素
    • 思路
  • 设计链表
    • 思路
  • 翻转链表
    • 思路

移除链表元素

  • https://leetcode.cn/problems/remove-linked-list-elements/

在这里插入图片描述

思路

  • 问题:如果我们删除的元素除头结点的其他元素,我们只需要将被删除元素的上一个节点next指向被删除元素的下一个节点,但是如果删除的元素头结点的话,我们就需要将head指针移动到下一个节点。这样就会导致整个操作不统一,需要判断被删除的节点是不是头结点
  • 解决方案:采用虚拟头结点,这样整个操作过程就会统一
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def removeElements(self, head: Optional[ListNode], val: int) -> Optional[ListNode]:virtualHead = ListNode()    # 申请虚拟节点virtualHead.next = head    # 虚拟节点指向headcur = virtualHead           while cur.next:if cur.next.val == val:   cur.next = cur.next.next    # 删除节点else:cur = cur.nextreturn virtualHead.next 

设计链表

  • https://leetcode.cn/problems/design-linked-list/

在这里插入图片描述

  • get(index):获取链表中下标为index的值。
  • addAtHead(val)头部插入元素
  • addAtTail(val)尾部插入元素
  • addAtIndex(index,val):将节点插入到下标为index的位置
  • deleteAtIndex(index):删除下标index的节点

思路

  • 采用虚拟头结点
class ListNode:def __init__(self, val=0, next=None):self.val = valself.next = nextclass MyLinkedList:def __init__(self):self.virtualHead = ListNode()self.size = 0def get(self, index: int) -> int:if index <0 or index > self.size -1:return -1cur = self.virtualHead.nextfor _ in range(index):cur = cur.nextreturn cur.valdef addAtHead(self, val: int) -> None:tempNode = ListNode(val)tempNode.next = self.virtualHead.nextself.virtualHead.next = tempNodeself.size +=1def addAtTail(self, val: int) -> None:tempNode = ListNode(val)cur = self.virtualHead    # 注意:没有节点时,尾部插入也可以是头部插入while cur.next:cur = cur.nextcur.next = tempNodeself.size +=1def addAtIndex(self, index: int, val: int) -> None:if index < 0 or index > self.size:   # 注意:最后一个节点的位置的下一个节点插入也是可以的return NonetempNode = ListNode(val)cur = self.virtualHead       # 有可能在头结点的位置插入for _ in range(index):cur = cur.nexttempNode.next = cur.nextcur.next = tempNodeself.size +=1def deleteAtIndex(self, index: int) -> None:if index <0 or index > self.size -1:return Nonecur = self.virtualHead    # 有可能删除头结点for _ in range(index):cur = cur.nextcur.next = cur.next.nextself.size -= 1# Your MyLinkedList object will be instantiated and called as such:
# obj = MyLinkedList()
# param_1 = obj.get(index)
# obj.addAtHead(val)
# obj.addAtTail(val)
# obj.addAtIndex(index,val)
# obj.deleteAtIndex(index)

翻转链表

  • https://leetcode.cn/problems/reverse-linked-list/

在这里插入图片描述

思路

  • 使用双指针,初始时,cur指向头节点pre指向None
  • 在移动cur,pre之前,先记录cur的下一个节点
  • 在移动cur,pre时先移动pre,再移动cur
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:cur = headpre = Nonewhile cur:temp = cur.nextcur.next = prepre = curcur = tempreturn pre
http://www.dtcms.com/wzjs/108782.html

相关文章:

  • 义乌网站制作多少钱广州seo优化推广
  • 旅游电子商务网站建设调查问卷百度知道网页版地址
  • 加盟类网站建设怎么样把自己的产品网上推广
  • 安徽中擎建设公司网站关键词检测工具
  • wordpress怎么换logo麒麟seo外推软件
  • 电商类网站怎么做 seo怎样无货源开网店
  • 武汉站哪家设计公司考证培训机构报名网站
  • 外国语学院英文网站建设网络推广的具体方式
  • 个人网站开发实例热点事件
  • 建设运营网络或提供网络服务seo网站
  • 如何用手机做网站吗西安企业seo外包服务公司
  • 公司网站建设设计公司杭州seo网
  • 关键词济南seo关键词排名工具
  • it网站建设干嘛的seo是怎么优化上去
  • 济宁有做企业网站吗醴陵网站制作
  • 网站后台管理系统 英文网站建设品牌公司
  • 襄阳专业做网站百度移动端点赞排名软件
  • 爱站工具有加超人下拉系统西安官网seo技术
  • 家居网站页面设计图片怎么推广游戏代理赚钱
  • 网站设计师培训班搜索引擎竞价广告
  • 微信开放平台与个人网站怎么杭州seo软件
  • 外国高端网站怎么开通百度推广账号
  • wordpress上传媒体武汉seo网站
  • 网站做兼容处理怎么佛山网站优化排名推广
  • 做网站用什么编程语言好百度官方网站下载安装
  • 做采集网站难不网络营销平台有哪些?
  • 效果好的魔站建站系统网页设计html代码大全
  • 湖南郴州人很穷吗优化公司
  • 自做衣服网站网络广告营销方案策划内容
  • 重庆网站seo公司哪家好营销策略ppt