Leetcode 160. 相交链表 解题思路及C++实现
解题思路:
先将两个链表构建成一个环,定义两个快慢指针,当它们相遇时,将fast指针从头结点往后遍历,每次走一步,当这两个指针再次相遇时,该节点就是相交节点。
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {if(!headA || !headB) return NULL;//先将两个链表连起来,构造一个环ListNode* tmp = headA;while(tmp && tmp->next)tmp = tmp->next;tmp->next = headB;//headA作为链表的头结点ListNode* slow = headA;ListNode* fast = headA;while(fast && fast->next){slow = slow->next;fast = fast->next->next;if(slow == fast) break;}if(!fast || !fast->next) {tmp->next = NULL; //把链表结构复原return NULL; //没有相交节点}//让fast指针指向头结点fast = headA;while(fast != slow){// cout<< slow->val;slow = slow->next;fast = fast->next;}tmp->next = NULL; //把链表结构复原return fast;}
};
Leetcode 160. 相交链表 解题思路及C++实现相关推荐
- Leetcode 160.相交链表
难度:简单 频率:140 题目 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点.如果两个链表不存在相交节点,返回 null . 解题方法:双指针遍历 解题 ...
- leetcode 160. 相交链表(双指针)
给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点.如果两个链表没有交点,返回 null . 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结 ...
- Leetcode 148. 排序链表 解题思路及C++实现
解题思路: 对链表进行归并排序,使用 fast 和 slow 两个指针,遍历一次链表,就能将链表切分为两半,然后使用归并排序的方法. /*** Definition for singly-linked ...
- LeetCode 160. 相交链表
文章目录 1. 题目信息 2. 解题 2.1 计算长度 2.2 交替遍历 1. 题目信息 编写一个程序,找到两个单链表相交的起始节点. <剑指Offer>同题:面试题52. 两个链表的第一 ...
- Leetcode 206. 反转链表 解题思路及C++实现
解题思路: 利用三个指针 left.right.tmp.left指向的是每一步反转之后的头结点,right指向的是当前需要反转的节点,tmp指向的是下一步需要反转的节点. /*** Definitio ...
- Leetcode 141. 环形链表 解题思路及C++实现
解题思路: 定义快慢两个指针,当指针所指节点是同一个时,说明出现了环. /*** Definition for singly-linked list.* struct ListNode {* int ...
- [leetcode]160.相交链表
给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点.如果两个链表没有交点,返回 null . 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结 ...
- LeetCode 160. 相交链表(c++实现)
思路 统计两个链表的长度,并记录两个链表尾结点,判断是否相同. 比较链表长度,让较长的链表走|lenA-lenB|步数,使得两个俩表剩余部分长度相等 两个链表一起走,走到相同节点,即相交节点. 实现 ...
- Leetcode 160 相交链表 (每日一题 20210802)
给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点.如果两个链表没有交点,返回 null .图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中 ...
最新文章
- php 过滤css样式,PHPCMS v9过滤采集内容中的CSS样式
- 一。深入了解JDK1.8 从Package java.io开始
- python ord()与chr()用法以及区别
- (EM算法)The EM Algorithm
- android 模拟器横竖屏切换
- ZigBee网络架构详解
- 机器学习】LDA线性判别分析
- 【C语言期末实训】学生学籍管理系统
- 【UIKit】UITableView.06
- C#中根据传入的字符串字段返回实体Lambda表达式
- 深入分析自定义表单验证与Cookies
- php 有道翻译api,php有道翻译api调用方法实例
- java 计算两点间的距离_java计算两点间的距离的两种方法
- 金蝶KIS专业版K3即时库存查询SQL语句SQLServer
- 面试方法-麦可利兰的能力素质模型
- Web漏洞挖掘(一)登录认证模块的暴力破解实例
- pandas数据合并之pd.concat()用法
- C/C++ MessageBox() 弹窗的用法
- python分析红楼梦中人物形象_红楼梦人物形象分析+赏析_作文
- Response.WriteFile 无法下载大文件解决方法
热门文章
- php 单例模式 序列化,php设计模式(二)单例模式
- SpringMVC总结三:请求Controller返回视图类型以及请求方式、参数介绍
- 如何理解c和c ++的复杂类型声明 (转)
- [EasyTao(道)系列文章之一]太极之道
- SQLSERVER数据库日志文件过大,如何压缩并定期清理 ?
- GAE Python 2009-3-22
- Android+Eclipse修改包路径
- vue中v-for循环如何将变量带入class的属性名中
- python编程规范
- 手把手教你安装Navicat——靠谱的Navicat安装教程