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

电子商务网站建设的大纲潍坊网站维护

电子商务网站建设的大纲,潍坊网站维护,女孩做网站运营好吗,重庆秀山网站建设费用3道链表力扣题 一、删除链表中的节点🌏 题目链接📕 示例🍀 分析💻 代码 二、反转链表🌏 题目链接📕 示例🍀 分析① 递归② 迭代 三、判断一个链表是否有环🌏 题目链接📕 …

3道链表力扣题

  • 一、删除链表中的节点
    • 🌏 题目链接
    • 📕 示例
    • 🍀 分析
    • 💻 代码
  • 二、反转链表
    • 🌏 题目链接
    • 📕 示例
    • 🍀 分析
      • ① 递归
      • ② 迭代
  • 三、判断一个链表是否有环
    • 🌏 题目链接
    • 📕 示例
    • 🍀 分析
    • 💻 代码

一、删除链表中的节点

🌏 题目链接

【删除链表中的节点】https://leetcode.cn/problems/delete-node-in-a-linked-list/description/

📕 示例

在这里插入图片描述

🖊 输入: head = [4, 5, 1, 9], node = 5
🖊 输出: [4, 1, 9]
🖊 解释: 指定链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9

在这里插入图片描述

🖊 输入: head = [4, 5, 1, 9], node = 1
🖊 输出: [4, 5, 9]
🖊 解释: 指定链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9

在这里插入图片描述

🍀 分析

public class ListNode {int val;ListNode next;ListNode(int x) {val = x;}
}

🖊 每一个节点就是一个 ListNode 对象
🖊 val 属性存储了具体的数据
🖊 next 属性存储了一个节点的内存地址

public class Solution {public void deleteNode(ListNode node) {}
}

🖊 deleteNode(ListNode node) 方法中,参数node是要被"删除"的节点
🖊 在该题中能够获得到的已知条件就只有这个要被删除的节点 node

🖊 已知: 要被删除的节点 node
🖊 根据已知可以得到: ① 要被删除的节点往后的所有节点 node.next.next...(这里就考虑它的下一个节点 node.next);② 可以得到节点的 valnode


在这里插入图片描述

🖊 这里的删除第三个节点,并不是把该节点从内存中移除,而是让第三个节点的值不再是【1】,而是它的下一个节点的值【9】。并且第三个节点的 next 存储它的下一个节点的 next

在这里插入图片描述

在这里插入图片描述

💻 代码

class Solution {public void deleteNode(ListNode node) {// 用被删除节点的下一个节点的值覆盖被删除节点的值node.val = node.next.val;// 被删除节点的next指向它下一个节点的nextnode.next = node.next.next;}
}

二、反转链表

🌏 题目链接

【206.反转链表】https://leetcode.cn/problems/reverse-linked-list/description/

📕 示例

在这里插入图片描述

🖊 输入: head = [1, 2, 3, 4, 5]
🖊 输出: [5, 4, 3, 2, 1]

在这里插入图片描述

🖊 输入: head = [1, 2]
🖊 输出: [2,1]

🖊 输入: head = []
🖊 输出: []

🍀 分析

class Solution {public ListNode reverseList(ListNode head) {}
}

🖊 reverseList(ListNode head) 方法只有一个参数 head(头指针),它指向了头节点

① 递归

在这里插入图片描述

👆 如上图所示,假如 reverseList 方法编写成功的话,reverseList(head) 方法调用后,该链表的头指针会指向方法调用之前的尾节点(如上图的 newHead
👆 原本的 head = [5, 4, 3, 2, 1] 也变成了 head = [1, 2, 3, 4, 5]

在这里插入图片描述

🖊 假如 reverseList(head.next) 调用成功,则整个链表如上图所示


在这里插入图片描述
在这里插入图片描述


public class Solution {public ListNode reverseList(ListNode head) {if (head == null || head.next == null) return head;// 递归ListNode newHead = reverseList(head.next);head.next.next = head;head.next = null;return newHead;}
}

② 迭代

在这里插入图片描述

🖊 已知条件就只有一个头指针 head,只能通过这个 head 进行反转


public class Solution {/*** 头插法(迭代)*/public ListNode reverseList(ListNode head) {if (head == null || head.next == null) return head;ListNode newHead = null;do {ListNode tmp = head.next;head.next = newHead;newHead = head;head = tmp;} while (head != null);return newHead;}
}

三、判断一个链表是否有环

🌏 题目链接

141.判断一个链表是否有环:https://leetcode.cn/problems/linked-list-cycle/description/

📕 示例

在这里插入图片描述

在这里插入图片描述

🍀 分析

🖊 使用快慢指针思想完成
🖊 fast 指针每次 next 两步;slow 指针每次 next 一步。若有环的话,快慢指针必然相遇
🖊 如果 fast 指向 null 或 fast.next 指向 null,则链表没有环

在这里插入图片描述

💻 代码

public class Solution {public boolean hasCycle(ListNode head) {if (head == null || head.next == null) return false;ListNode slow = head;ListNode fast = head.next;// 【fast == null || fast.next == null】都代表链表无环while (fast != null && fast.next != null) {slow = slow.next;fast = fast.next.next;if (slow == fast) return true;}return false;}
}

🍀 完整代码

http://www.yayakq.cn/news/160060/

相关文章:

  • 免费的行情网站app入口商品展示网站模板源码
  • 江西数据平台网站建设装修设计费
  • 湖南营销型网站建设 A磐石网络网站筹备建设情况
  • 什么是网站前台静态化wordpress有广告插件下载
  • 网站建设用哪的图片不侵权网络营销方案设计题
  • 苏州优秀网站设计公司不正规网站制作
  • 随便玩玩在线制作网站兰州北京网站建设
  • 云南网站建设及优化个人简约网站模板免费下载
  • 网站容量seo学徒是做什么
  • 无锡网站建设和做全英文网站
  • 免费制作个人网站的软件哪些网上可以赚钱的网站
  • 中企潍坊分公司网站ppt制作网站推荐
  • 企业购网站建设帝国做双语网站
  • 河北网站建设免费推荐wordpress弹窗提示
  • 教育海报设计素材网站河北石家庄
  • 网站备案可以做电影网站吗是网站建设
  • 腾讯网站建设专家点石家装
  • 讯美深圳网站建设手机商城系统
  • 海北高端网站建设哪家好1280的界面网站做多宽
  • 开发区网站建设工作管理办法wordpress插件授权
  • 维护网站一年多少钱详情页设计风格
  • 郑州做网站网站建设费用微网站怎么开发
  • wordpress网站转app插件下载建设大型网站的公司
  • 从网址怎么看网站的域名网页打不开微信可以上什么原因
  • 搜狗站长平台验证不了《网站基础建设-首保》
  • 宁乡网站开发公司推荐谷歌浏览器 官网下载
  • 郑州网站建设企起广告公司主要做什么
  • 网站建设平台赚钱wordpress island主题
  • 视频网站做app开发的网页设计怎样做一个网页
  • 网站建设优化哪家公司好郑州互联网公司排行榜