func getIntersectionNode(headA, headB *ListNode) *ListNode{
if headA == nil {
return headA
}
if headB == nil {
return headB
}
l1 := headA
l2 := headB
var a int = 0
node := l1
for node != nil {
a += 1
node = node.Next
}
var b int = 0
node = l2
for node != nil {
b += 1
node = node.Next
}
if a > b {
num := a-b
for i:=0; i < num; i ++ {
l1 = l1.Next
}
} else if a < b {
num := b - a
for i := 0; i < num; i++ {
l2 = l2.Next
}
}
for l1 != l2 {
if l1 == nil {
return headB
} else {
l1 = l1.Next
}
if l2 == nil {
return headA
} else {
l2 = l2.Next
}
}
return l1;
}