剑指offer 两个链表的第一个公共节点
来源:互联网 发布:倍福plc编程软件 编辑:程序博客网 时间:2024/05/21 14:02
题目描述:
输入两个链表,找出它们的第一个公共结点。
思路:首先如图所示,
什么是公共节点,也就是从这个节点开始所有的节点都相同,所以从最后一个节点到第一个相同的节点都相同,所以枚举两个链表的长度,然后求出两链表长度之差,然后同步到同样位置开始遍历,第一个相同点则为第一个公共点。
代码:
/*struct ListNode {int val;struct ListNode *next;ListNode(int x) :val(x), next(NULL) {}};*/class Solution {public: ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) { ListNode *p,*ans; int len1=0,len2=0; for(p=pHead1;p;p=p->next) len1++; for(p=pHead2;p;p=p->next) len2++; if(len1==0||len2==0) return NULL; int len = len1-len2; if(len>0){ while(len--) pHead1 = pHead1->next; } else { len = -len; while(len--) pHead2 = pHead2->next; } while(pHead1&&pHead2) { if(pHead1!=pHead2) { pHead1=pHead1->next; pHead2=pHead2->next; } else { ans = pHead1; break; } } return ans; }};
阅读全文
0 0
- 剑指offer-两个链表的第一个公共节点
- 【剑指offer】两个链表的第一个公共节点
- 剑指offer-两个链表的第一个公共节点
- 【剑指offer】两个链表的第一个公共节点
- 剑指offer------两个链表的第一个公共节点
- 《剑指offer》两个链表的第一个公共节点
- 剑指offer-两个链表的第一个公共节点
- 剑指offer--两个链表的第一个公共节点
- 剑指offer 两个链表的第一个公共节点
- 【刷题剑指offer】两个链表的第一个公共节点
- 剑指offer面试题37 两个链表的第一个公共节点
- [剑指offer][面试题37]两个链表的第一个公共节点
- 剑指offer 面试题37—两个链表的第一个公共节点
- 剑指offer之两个链表的第一个公共节点
- 剑指offer 37 - 两个链表的第一个公共节点
- 《剑指Offer》面试题:寻找两个链表的第一个公共节点
- 剑指offer系列之三十五:两个链表的第一个公共节点
- 剑指offer 37:求两个链表的第一个公共节点
- CRT连接linux,新建的用户“oralce”可以登陆了,root就登录不了了。 /etc/ssh/sshd_config 找到 PermitRootLogin no 改为yes
- 机器学习面试系列七
- Hadoop_HA配置过程记录
- WebService的List类型
- urllib库在python2与python3中的区别
- 剑指offer 两个链表的第一个公共节点
- cocos2dx版本热更新梳理
- Swift基础 元组
- Boost Python中exec,eval, exec_file, extract<>的函数形式和使用方法
- MySQL 将某个字段的值复制到同行记录的另一个字段
- 集合中LIst和ArrayList以及Hash一些知识点总结
- jvm启动参数设置 -Dfile.encoding=UTF-8 后中文乱码问题
- 2017第九届广州国际绿化苗木展览会会刊(参展商名录)
- 20