// Write a program to find the node at which the intersection of two singly linked lists begins.


// For example, the following two linked lists:

// A:          a1 → a2
//                    ↘
//                      c1 → c2 → c3
//                    ↗
// B:     b1 → b2 → b3
// begin to intersect at node c1.


// Notes:

// If the two linked lists have no intersection at all, return null.
// The linked lists must retain their original structure after the function returns.
// You may assume there are no cycles anywhere in the entire linked structure.
// Your code should preferably run in O(n) time and use only O(1) memory.

@@ -626,8 +626,221 @@
 memory.%0A
+%0A/**%0A * Definition for singly-linked list.%0A * function ListNode(val) %7B%0A *     this.val = val;%0A *     this.next = null;%0A * %7D%0A */%0A%0A/**%0A * @param %7BListNode%7D headA%0A * @param %7BListNode%7D headB%0A * @return %7BListNode%7D%0A */%0A

add params