leetcode-160. 相交链表
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { if(headA==NULL||headB==NULL) return NULL; int lenA = getlen(headA); int lenB = getlen(headB); int len = abs(lenA-lenB); if(lenA>lenB){ while(len--){ headA = headA->next; } }else if(lenA<lenB){ while(len--) headB = headB->next; } while(headA&&headB&&headA!=headB){ headA = headA->next; headB = headB->next; } return headA; } int getlen(ListNode* root){ int count = 0; if(root==NULL) return count; while(root){ count++; root= root->next; } return count; } };