概述
leecode
题目描述:
给出两个单链表,求他们的公共交点
思路:
如果两条链表有交点x,那么他们在x后面的节点都是相同的。
先求出链表长度差 dif,遍历其中一条链表使他们的长度相同,然后一顿乱搞。
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
int lena = 0, lenb = 0;
ListNode a = headA, b = headB;
while(headA != null){
headA = headA.next;
lena++;
}
while(headB != null){
headB = headB.next;
lenb++;
}
if(lena > lenb){
int dif = lena-lenb;
while(a!=null && dif>0){
a = a.next;
dif--;
}
while(a != b){
a = a.next;
b = b.next;
}
return a;
}
else{
int dif = lenb-lena;
while(b!=null && dif>0){
b = b.next;
dif--;
}
while(a != b){
a = a.next;
b = b.next;
}
return b;
}
}
}
最后
以上就是英勇羽毛为你收集整理的链表专题 2. 求链表交点的全部内容,希望文章能够帮你解决链表专题 2. 求链表交点所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复