【剑指offer】输入两个链表,找出它们的第一个公共结点。
2015-09-14 17:30
447 查看
思路:分别遍历一遍,得到长度差,然后长的先走这个差值,然后在一起走,知道第一个相同的为止。
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* FindFirstCommonNode( ListNode *pHead1, ListNode *pHead2) { if(pHead1 == NULL || pHead2 == NULL) return NULL; int length1 = 0; int length2 = 0; ListNode *pNode1 = pHead1; while(pNode1 != NULL){ ++length1; pNode1 = pNode1->next; } ListNode *pNode2 = pHead2; while(pNode2 != NULL){ ++length2; pNode2 = pNode2->next; } pNode1 = pHead1; pNode2 = pHead2; if(length1 > length2){ int diff = length1 - length2; while(diff-- > 0){ pNode1 = pNode1->next; } } if(length1 < length2){ int diff = length2 - length1; while(diff-- > 0){ pNode2 = pNode2->next; } } ListNode *pCommonNode = pNode1; while(pNode1 != pNode2 && pNode1 != NULL && pNode2 != NULL){ pNode1 = pNode1->next; pNode2 = pNode2->next; } pCommonNode = pNode1; return pCommonNode; } };
相关文章推荐
- IE6下margin双倍边距Bug的处理办法
- jQuery的deferred对象详解【彻底改变了如何在jQuery中使用ajax】
- 前端公共库cdn服务推荐//提高加载速度/节省流量
- jsp 中的 param.xxx == 0 的问题
- JSONModel的使用
- [转]如何选择Html.RenderPartial和Html.RenderAction
- POJ 3253 Fence Repair (割木头,贪心_优先队列)
- Perfect Squares
- jquery Ajax跨域调用WebServices方法
- 贰、js的基础(一)
- 前端性能优化篇(常见)
- nodejs body-parser不支持charset=GBK,报415错误问题
- 【剑指offer】判断二叉树是否平衡(左右子树高度差最多为1)
- Json
- javaScript & jquery完美判断图片是否加载完毕
- TimeSheet:一个用于时间规划的jQuery插件
- 详解HTML<head> 头标签元素的意义以及使用场景
- xHTML究竟有多少个标签?
- 【剑指offer】统计一个数字在排序数组中出现的次数
- fastjson生成JSON字符串的时候出现$ref [转]