[LeedCode OJ]#160 Intersection of Two Linked Lists

【 声明:版权所有,转载请标明出处,请勿用于商业用途。 联系信箱:libin493073668@sina.com】

题目链接:https://leetcode.com/problems/intersection-of-two-linked-lists/

题意:

给定两个链表,要求找出这两个链表的交点

思路:

我们可以设定两个指针,分别遍历得到a,b的长度,然后如果a长,就将a的指针从头指针往下移动k位直到与b指针等长的位置,b链表长也是如此。

然后两个指针同时出发,,一旦走到相同的位置,那么这个位置就是两个链表的交点

/** * 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){int la = 0,lb = 0;ListNode *pa = headA;ListNode *pb = headB;while(pa){la++;pa = pa->next;}while(pb){lb++;pb = pb->next;}pa = headA;pb = headB;if(la<lb){int cnt = lb – la;while(cnt–){pb = pb->next;}}else if(la>lb){int cnt = la – lb;while(cnt–){pa = pa->next;}}while(pa!=pb){pa = pa->next;pb = pb->next;}return pa;}};

版权声明:本文为博主原创文章,如果转载,请注明出处

人生就是一次充满未知的旅行,在乎的是沿途的风景,

[LeedCode OJ]#160 Intersection of Two Linked Lists

相关文章:

你感兴趣的文章:

标签云: