剑指offer|两个链表的第一个公共结点
来源:互联网 发布:如何更改mac地址 编辑:程序博客网 时间:2024/05/19 12:23
题目描述
输入两个链表,找出它们的第一个公共结点。
思路:
先分辨遍历两个链表,计算他们的长度,然后用两个指针分别指向两个链表的头结点。并让指向比较长的那个链表指针先往后走k步,k等于两个链表的长度差。,然后两个指针一起往后遍历,直到找到第一个相同的节点。
class Solution {public: ListNode* FindFirstCommonNode( ListNode *pHead1, ListNode *pHead2) { if(pHead1 == nullptr || pHead2 == nullptr) return nullptr; ListNode* pNode1=pHead1; int length1=0; while(pNode1) { ++length1; pNode1=pNode1->next; } ListNode* pNode2=pHead2; int length2=0; while(pNode2) { ++length2; pNode2=pNode2->next; } pNode1=pHead1; pNode2=pHead2; int diff=0; if(length1>length2) { diff=length1-length2; while(diff>0) { --diff; pNode1=pNode1->next; } } else { diff=length2-length1; while(diff>0) { --diff; pNode2=pNode2->next; } } while(pNode1 != nullptr) { if(pNode1==pNode2) return pNode1; pNode1=pNode1->next; pNode2=pNode2->next; } return pNode1; }};
0 0
- 【剑指offer】两个链表的第一个公共结点
- 剑指offer--两个链表的第一个公共结点
- 《剑指offer》两个链表的第一个公共结点
- 剑指offer 两个链表的第一个公共结点
- 剑指offer:两个链表的第一个公共结点
- [剑指offer]两个链表的第一个公共结点
- 剑指offer---两个链表的第一个公共结点
- 剑指offer|两个链表的第一个公共结点
- 剑指offer-两个链表的第一个公共结点
- 《剑指offer》-两个链表的第一个公共结点
- 剑指Offer: 两个链表的第一个公共结点
- 剑指offer:两个链表的第一个公共结点
- 剑指offer 两个链表的第一个公共结点
- 剑指offer--两个链表的第一个公共结点
- 剑指offer:两个链表的第一个公共结点
- 剑指Offer------两个链表的第一个公共结点
- 剑指offer--两个链表的第一个公共结点
- 剑指offer---两个链表的第一个公共结点
- 量化-使用python计算各类移动平均线
- BUG:获取不到网络数据
- 什么才算是真正的编程能力?
- 图片
- Node线上部署管理器PM2
- 剑指offer|两个链表的第一个公共结点
- iOS---如何在CocoaPods上发布自己的项目
- 搜索
- nginx启动、重启、关闭
- 5类系统推荐算法,告诉你用户需要什么
- 如何在Ubuntu14.04服务器上安装NodeJS
- JavaScript强化教程——jQuery选择器
- bzoj4566【HAOI2016】找相同字符
- JSP 九个隐含JSP对象