leetcode之链表类之相交成环类-----OJ 160/141/142 链表相交 链表环
来源:互联网 发布:数据在被 编辑:程序博客网 时间:2024/06/14 01:40
1、OJ160,两个 链表是否相交判断
O(N * M)的判断方式
OJ160代码:
class Solution {public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { if (!headA || !headB) { return nullptr; } for (ListNode *p = headA; p; p = p->next) { for (ListNode *q = headB; q; q = q->next) { if (p == q) { return p; } } } return nullptr; }};
2、OJ141 OJ142 链表环问题
判断一个链表是否成环
链表环知识汇总:
1、如何判断是否成环:快慢指针法,如果成环则快慢指针必相遇
2、如成环,入口点在哪:再弄两个指针,一个在head,一个在相遇点,然后同步走,相遇时所在节点就是入口节点
3、环长度:从入口点走,直到回到入口点,即走了环的一圈的长度
OJ141代码:
class Solution {public: bool hasCycle(ListNode *head) { ListNode *l1 = head, *l2 = head; while (l1 && l2 && l1->next && l1->next->next) { l1 = l1->next->next; l2 = l2->next; if (l1 == l2) { return true; } } return false; }};
OJ142代码:
class Solution {public: ListNode *detectCycle(ListNode *head) { if (!head) { return nullptr; } ListNode *l1 = head, *l2 = head; while (l1 && l2 && l1->next && l1->next->next) { l1 = l1->next->next; l2 = l2->next; if (l1 == l2) { break; } } if (l1 && l1->next && l1->next->next) { l2 = head; while (l2 != l1) { l2 = l2->next; l1 = l1->next; } return l1; } else { return nullptr; } }};
阅读全文
0 0
- leetcode之链表类之相交成环类-----OJ 160/141/142 链表相交 链表环
- 算法之不相交集合链表
- 编程之美----链表相交问题
- 编程之美--链表是否相交
- 编程之美----链表相交问题
- bitmap之相交模式
- 单链表面试题系列之链表相交问题
- 链表面试题之链表相交问题
- 链表面试题之链表相交问题
- 编程之美--编程判断两个链表是否相交
- 【编程之美】3.6 - 判断两个链表是否相交
- 微软面试之第七题 链表相交问题
- 编程之美-判断两个链表是否相交
- 数字之魅:判断两个链表是否相交
- 每日一题之链表的相交
- 两个链表相交,计算相交点
- 编程之美-编程判断两个链表(可能含环)是否相交以及相交的第一个结点
- 数据结构之--不相交集
- 字符编码修改问题
- C++ 读取raw文件并保存为到bmp图片下
- Ubuntu 搭建hadoop平台
- LaTex中文编辑入门
- Dijkstra双栈算数表达式求值算法的过程与分析
- leetcode之链表类之相交成环类-----OJ 160/141/142 链表相交 链表环
- Dubbo之入门案例-yellowcong
- [深度学习]神经网络的理解(MLP RBF RBM DBN DBM CNN 整理学习)
- 序二——以大师之道学管理
- TensorFlow学习笔记:3、TensorFlow基本概念
- 02 Java语言基础
- 【Linux】静态库及动态库
- Hbuilder开发app在手机端缓存json数据
- nextInt(),charAt(0),nextLine(),与电脑猜拳小程序