[剑指offer]两个链表的第一个公共结点
来源:互联网 发布:海尔热水器电死人 知乎 编辑:程序博客网 时间:2024/05/27 14:14
题目描述
输入两个链表,找出它们的第一个公共结点。
分析:计算两个链表的长度,同时比较一下链表尾元素是否相同,如果不同那么两个链表就不相交。让比较长的链表的指针先走两个链表长度的差值,然后两个指针再一起走,知道两个指针指向相同元素,这个元素就是第一个公共节点。
代码:
/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* FindFirstCommonNode( ListNode *pHead1, ListNode *pHead2) { int n1=0; int n2=0; ListNode* p=pHead1; ListNode* q=pHead2; while(p!=nullptr){ n1++; p=p->next; } while(q!=nullptr){ n2++; q=q->next; } if(p!=q) return nullptr; p=pHead1; q=pHead2; if(n1>n2){ while(n1>n2){ p=p->next; n1--; } while(p!=q){ p=p->next; q=q->next; } return p; }else{ while(n2>n1){ q=q->next; n2--; } while(p!=q){ p=p->next; q=q->next; } return p; } }};
0 0
- 【剑指offer】两个链表的第一个公共结点
- 剑指offer--两个链表的第一个公共结点
- 《剑指offer》两个链表的第一个公共结点
- 剑指offer 两个链表的第一个公共结点
- 剑指offer:两个链表的第一个公共结点
- [剑指offer]两个链表的第一个公共结点
- 剑指offer---两个链表的第一个公共结点
- 剑指offer|两个链表的第一个公共结点
- 剑指offer-两个链表的第一个公共结点
- 《剑指offer》-两个链表的第一个公共结点
- 剑指Offer: 两个链表的第一个公共结点
- 剑指offer:两个链表的第一个公共结点
- 剑指offer 两个链表的第一个公共结点
- 剑指offer--两个链表的第一个公共结点
- 剑指offer:两个链表的第一个公共结点
- 剑指Offer------两个链表的第一个公共结点
- 剑指offer--两个链表的第一个公共结点
- 剑指offer---两个链表的第一个公共结点
- Chrome ZeroNet 插件让你访问ZeroNet更轻松
- IDE神器intellij idea的基本使用
- Android的IPC方式
- android onActivityResult没调用
- 原码, 反码和补码.
- [剑指offer]两个链表的第一个公共结点
- windows下的Java应用启动
- (8^111+9^111)除以17^2余数是多少?
- Android中的跨进程调用技术AIDL
- Android 属性动画(Property Animation) 完全解析 (上)
- 基于faster rcnn的红绿灯检测
- 待读博客
- git 命令常用总结
- java集合------ArrayList