两个链表的第一个公共节点
2018-01-16 18:58
190 查看
两个链表的第一个公共节点
一、题目要求
输入两个链表,找出它们的第一个公共结点。二、我的思路
定义两个指针分别指向两个链表的头结点,分别让这两个指针以相同的速度遍历链表。如果指针遍历到链表结尾,则将其指向对方链表的头结点来缓冲两个链表的头指针到第一个公共节点的长度之差。注意,如果两个链表有第一个公共节点,则剩余的节点均为公共节点。三、我的代码
/* 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, *p2 = pHead2; while(p1 != p2){ p1 = (p1 == NULL) ? pHead2 : p1->next; p2 = (p2 == NULL) ? pHead1 : p2->next; } return p1; } };
相关文章推荐
- 已知有两个链表,判断它们是否相交,若相交求其第一个公共节点
- 两个链表的第一个公共节点(剑指offer)
- 输入两个链表,找出他们第一个公共节点
- 两个链表的第一个公共节点38
- 面试题之包含min函数的栈,两个链表的第一个公共节点
- 剑指offer——面试题37:两个链表的第一个公共节点
- 找到两个单向链表的第一个公共节点
- 求两个链表的第一个公共节点(来源于剑指名企offer)
- 剑指offer----两个链表的第一个公共节点----java实现
- 判断两个链表是否有公共节点并返回第一个公共节点
- 剑指Offer—36—两个链表的第一个公共节点
- 【面试题】剑指Offer-37-求两个链表的第一个公共节点
- 【刷题剑指offer】两个链表的第一个公共节点
- 两个链表的第一个公共节点
- 经典算法学习——打印两个链表的第一个公共节点
- 两个链表的第一个公共节点
- 剑指Offer - 两个链表第一个公共节点
- 《剑指Offer》面试题:寻找两个链表的第一个公共节点
- 剑指offer——两个链表的第一个公共结点(给出的方法,都是针对有且只有一个公共节点的方法)
- Intersection of Two Linked Lists(两个链表的第一个公共节点)