判断两个链表是否相交,及其第一个公共交点
来源:互联网 发布:有没有哪种编程的实例 编辑:程序博客网 时间:2024/05/21 05:40
输入两个链表,找出它们的第一个公共结点。
算法思路:若两个链表相交,则从交点开始连个链表的交点都相同。
/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) { ListNode *p1=pHead1; ListNode *p2=pHead2; int len1=0,len2=0,diff=0; //遍历第一个链表 while(p1!=NULL){ p1=p1->next; len1++; } //遍历第二个链表 while(p2!=NULL){ p2=p2->next; len2++; } //判断两个链表的长度,找出长度比较大的链表 if(len1>len2){ diff=len1-len2; p1=pHead1; p2=pHead2; } else{ diff=len2-len1; p1=pHead2; p2=pHead1; } //让长度比较大的链表先走长度差步数 for(int i=0;i<diff;i++){ p1=p1->next; } //两个链表比较,若两个节点相同,则为两个链表的交点 while(p1!=NULL && p2!=NULL){ if(p1==p2) break; p1=p1->next; p2=p2->next; } return p1; }};
阅读全文
0 0
- 判断两个链表是否相交,及其第一个公共交点
- 判断两个链表是否相交,若相交,求第一个交点
- 判断两个链表是否相交并且返回第一个交点
- 已知有两个链表,判断它们是否相交,若相交求其第一个公共节点
- 判断两个单链表是否相交及找到第一个交点
- 判断两个链表是否相交,若相交,求交点。
- 判断两个链表是否相交,若相交,求交点
- 判断两个链表是否相交,若相交,求交点
- 两个单向链表,判断它们是否相交,若相交,找出它们的第一个公共的结点
- 判断两链表是否相交,如果相交找到第一个交点
- 判断两个链表是否相交,如果相交如何找到第一个相交结点。
- 判断两个链表是否相交并找出交点
- 判断两个链表是否相交并找出交点
- 判断两个链表是否相交并找出交点
- 判断两个链表是否相交并找出交点
- 判断两个链表是否相交并找出交点
- 判断两个链表是否相交并找出交点
- 判断两个链表是否相交并找出交点
- 使用webpack构建本地服务器,实现自动刷新
- 智能硬件安全问题凸显 海云安护航个人信息安全
- 【面向JS--数组遍历】
- Ruby学习笔(06)_方法
- seo高手需要具备的能力
- 判断两个链表是否相交,及其第一个公共交点
- Linux中JDK安装及环境变量配置
- 实验二顺序表
- springmvc处理上传图片代码(校验图片尺寸、图片大小)
- 4.Unity_Shader_CG 高光反射模型
- SVN汉化包安装方法
- C++ 验证DH算法
- 对称的二叉树java实现
- [RK3288][Android7.1] Android7.1 nougat source code下载