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

宜春做网站公司wordpress p=

宜春做网站公司,wordpress p=,h5网站开发总结,吉安市网站制作面试经典算法8-环形链表 LeetCode.141 公众号#xff1a;阿Q技术站 问题描述 给你一个链表的头节点 head #xff0c;判断链表中是否有环。 如果链表中有某个节点#xff0c;可以通过连续跟踪 next 指针再次到达#xff0c;则链表中存在环。 为了表示给定链表中的环阿Q技术站 问题描述 给你一个链表的头节点 head 判断链表中是否有环。 如果链表中有某个节点可以通过连续跟踪 next 指针再次到达则链表中存在环。 为了表示给定链表中的环评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置索引从 0 开始。注意pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。 如果链表中存在环 则返回 true 。 否则返回 false 。 示例 1 输入head [3,2,0,-4], pos 1 输出true 解释链表中有一个环其尾部连接到第二个节点。示例 2 输入head [1,2], pos 0 输出true 解释链表中有一个环其尾部连接到第一个节点。示例 3 输入head [1], pos -1 输出false 解释链表中没有环。提示 链表中节点的数目范围是 [0, 104]-105 Node.val 105pos 为 -1 或者链表中的一个 有效索引 。 **进阶**你能用 O(1)即常量内存解决此问题吗 思路 定义两个指针 slow 和 fast初始时都指向链表的头节点 head。slow 每次向后移动一个节点fast 每次向后移动两个节点。这样如果链表中有环fast 最终会追上 slow。如果 fast 为 nullptr 或者 fast-next 为 nullptr则说明链表中不存在环返回 false。如果 fast 和 slow 相遇则说明链表中存在环返回 true。 图解 这里根据示例1给大家做一个图解演示。 初始化定义两个指针 slow 和 fast初始时都指向链表的头节点 head。 slow 每次向后移动一个节点fast 每次向后移动两个节点。 继续移动 继续移动 此时 fast 和 slow 相遇说明链表中存在环返回true。 如果 fast 为 nullptr 或者 fast-next 为 nullptr则说明链表中不存在环返回 false。 参考代码 C #include iostream// 定义链表节点结构 struct ListNode {int val;ListNode *next;ListNode(int x) : val(x), next(nullptr) {} };class Solution { public:bool hasCycle(ListNode *head) {// 定义快慢指针并初始化为链表头节点ListNode *slow head;ListNode *fast head;// 使用快慢指针判断链表中是否存在环while (fast ! nullptr fast-next ! nullptr) {slow slow-next; // 慢指针每次移动一步fast fast-next-next; // 快指针每次移动两步if (slow fast) { // 如果快慢指针相遇说明存在环return true;}}// 如果快指针到达链表尾部说明不存在环return false;} };int main() {// 创建一个有环的链表ListNode *head new ListNode(3);head-next new ListNode(2);head-next-next new ListNode(0);head-next-next-next new ListNode(-4);head-next-next-next-next head-next; // 尾节点连接到第二个节点形成环Solution sol;std::cout std::boolalpha sol.hasCycle(head) std::endl; // 输出 true表示链表中存在环// 释放链表内存ListNode *curr head;while (curr ! nullptr) {ListNode *temp curr;curr curr-next;delete temp;}return 0; }Java class ListNode {int val;ListNode next;ListNode(int x) {val x;next null;} }public class Solution {public boolean hasCycle(ListNode head) {// 定义快慢指针并初始化为链表头节点ListNode slow head;ListNode fast head;// 使用快慢指针判断链表中是否存在环while (fast ! null fast.next ! null) {slow slow.next; // 慢指针每次移动一步fast fast.next.next; // 快指针每次移动两步if (slow fast) { // 如果快慢指针相遇说明存在环return true;}}// 如果快指针到达链表尾部说明不存在环return false;} }public class Main {public static void main(String[] args) {// 创建一个有环的链表ListNode head new ListNode(3);head.next new ListNode(2);head.next.next new ListNode(0);head.next.next.next new ListNode(-4);head.next.next.next.next head.next; // 尾节点连接到第二个节点形成环Solution sol new Solution();System.out.println(sol.hasCycle(head)); // 输出 true表示链表中存在环} }Python class ListNode:def __init__(self, x):self.val xself.next Noneclass Solution:def hasCycle(self, head: ListNode) - bool:# 定义快慢指针并初始化为链表头节点slow headfast head# 使用快慢指针判断链表中是否存在环while fast and fast.next:slow slow.next # 慢指针每次移动一步fast fast.next.next # 快指针每次移动两步if slow fast: # 如果快慢指针相遇说明存在环return True# 如果快指针到达链表尾部说明不存在环return False# 创建一个有环的链表 head ListNode(3) head.next ListNode(2) head.next.next ListNode(0) head.next.next.next ListNode(-4) head.next.next.next.next head.next # 尾节点连接到第二个节点形成环sol Solution() print(sol.hasCycle(head)) # 输出 True表示链表中存在环
http://www.pierceye.com/news/239032/

相关文章:

  • 惠州市博罗县建设局网站防静电产品东莞网站建设技术支持
  • 茂名整站优化百度一下 你知道首页
  • 郑州网站微信微博维护品牌网站建设流程图
  • 网站建站销售怎么做做门窗安装去哪些网站找生意
  • 太原建站司点击查看荆州网站开发
  • 个人音乐网站开发宁波网站推广工作室电话
  • 建设部网站 造价工程师wordpress忘了秘密
  • 如何分析一个网站建设策划案湖南网络推广公司大全
  • 惠州市建设工程交易中心网站如何制作网页导航栏
  • 保山网站建设哪家好做led视频好的网站
  • 如何利用网站策划做好网站建设申请域名要多少钱
  • 专业做公司logo的网站谷歌网站推广方案
  • 公司网站建设情况说明网站开发用php好吗
  • 网站做关键词库的作用空间怎么做网站
  • 制作网站公司名称网络营销与策划实践报告
  • 哈尔滨手机网站建设价格低长沙网业公司
  • 如皋网站建设公司网站推广优化排名
  • 行业网站方案网站搭建合同
  • 如何用ps做网站图标吉林省长春市建设局网站
  • 北京高端网站建设服务广州百度快速排名优化
  • 电子商务网站开发课程设计网站建设石家庄
  • 好的公司网站有什么用烟台建设集团招聘信息网站
  • 网站制作需要多长时间网站代建设费用
  • 淘宝客网站设计台州建设银行官方网站
  • 婚纱网站建设规划书2023全国企业公司大黄页
  • 网站seo的关键词排名怎么做的wordpress 在线留言
  • 建一个c2c网站要多少钱小程序云开发文档
  • asp网站合法上虞网站设计
  • 网站 用什么数据库蛋糕店网站建设方案
  • 网站上的动效是用ae做的网站开发实训小结