两个链表的第一个公共结点
来源:互联网 发布:淘宝网法院拍卖平台 编辑:程序博客网 时间:2024/05/16 08:35
1.问题描述
输入两个链表,找出他们的第一个公共结点。(来自《剑指offer》)
2.问题分析
我们可以先统计出2个链表的长度,然后计算两个链表相差的结点数,让长的链表先走相差的结点数,然后俩个链表在一起走,直到遇到相同的结点,然后返回。
3.分析
ListNode* FindFirstCommonNode(ListNode *head1,ListNode *head2){ if (head1 == NULL || head2 == NULL) { return NULL; } int length1 = 1; int length2 = 1; ListNode *node1 = head1; ListNode *node2 = head2; while (node1->next != NULL) { length1 ++; node1 = node1->next; } while (node2->next != NULL) { length2 ++; node2 = node2->next; } node1 = head1; node2 = head2; if (length2 > length1) { while (length2 > length1) { length2 --; node2 = node2->next; } } if (length2 < length1) { while (length2 < length1) { length1 --; node1 = node1->next; } } while (node1 != NULL && node2 != NULL) { if (node1 == node2) { return node1; } node1 = node1->next; node2 = node2->next; } return NULL; }
0 0
- 找出两个链表的第一个公共结点--总结
- 找出两个链表的第一个公共结点
- 找两个链表的第一个公共结点
- 找出两个链表的第一个公共结点
- 找出两个链表的第一个公共结点
- 找出两个链表的第一个公共结点
- 找出两个链表的第一个公共结点
- 找出两个链表的第一个公共结点
- 两个链表的第一个公共结点
- 找出两个链表的第一个公共结点
- 两个链表的第一个公共结点
- 两个链表的第一个公共结点
- 两个链表的第一个公共结点
- 找两个链表的第一个公共结点
- 两个链表的第一个公共结点(剑指offer37)
- 【剑指offer】两个链表的第一个公共结点
- 题目1505:两个链表的第一个公共结点
- 两个链表的第一个公共结点
- 快速透视 AIX 系统
- 代码无错就是忧? 简单工厂模式
- RTMP/RTP/RTSP/RTCP的区别
- Android官方入门文档[17]构建灵活的UI
- Android小记:之ADT插件的安装
- 两个链表的第一个公共结点
- android锁屏
- 杭电题目分类
- MVC学习系列-HtmlHelper分析以及实例演示
- C#判断上传文件是否是图片以防止木马上传的方法
- 精美手电筒间断闪烁实现
- AIX 常用命令汇总
- Redis学习1--字符串学习
- LeetCode 6.ZigZag Conversion