面试题 37 两个链表的第一个公共节点
2013-09-17 16:14
337 查看
struct ListNode{ int val; ListNode * next; ListNode(int a):val(a), next(NULL){} }; ListNode *FindFirstCommonNode(ListNode *head1, ListNode *head2){ if(head1 == NULL || head2 == NULL) return NULL; int len1 = getListLength(head1); int len2 = getListLength(head2); int len; ListNode *longer , * smaller; (len1 > len2) ? (longer = head1, smaller = head2, len = len1 - len2): (longer = head2, smaller = head1, len = len2 - len1); while(len > 0) longer = longer->next; while(longer != NULL && longer != smaller){ longer = longer->next; smaller = smaller->next; } return longer; } int getListLength(ListNode * head){ int count = 0; while(head){ ++count; head = head->next; } return count; }
相关文章推荐
- 面试题37:两个链表的第一个公共节点
- 面试题37:两个链表的第一个公共节点
- 【面试题】剑指Offer-37-求两个链表的第一个公共节点
- 剑指offer——面试题37:两个链表的第一个公共节点
- 剑指offer-面试题37 两个链表的第一个公共节点
- [剑指offer][面试题37]两个链表的第一个公共节点
- 面试题37:两个链表的第一个公共节点
- 剑指offer 面试题37—两个链表的第一个公共节点
- 剑指offer-面试题37-两个链表的第一个公共结点
- 【剑指offer系列】 两个链表的第一个公共节点___37
- 面试题37:两个链表的第一个公共结点
- offer37:两个链表的第一个公共节点
- 【剑指offer】面试题37:两个链表的第一个公共结点
- 微软面试题:找到两个单向链表的第一个公共节点
- 面试题37:两个链表的第一个公共结点
- 剑指offer 面试题37 两个链表的第一个公共结点
- 剑指Offer_面试题37_两个链表的第一个公共结点
- 面试题:两个链表的第一个公共节点
- 【剑指Offer学习】【面试题37:两个链表的第一个公共结点】
- 【剑指Offer】面试题37:两个链表的第一个公共结点