题目
输入两个链表,找出它们的第一个公共节点。
Python题解
def get_list_len(head):
list_len = 0
while head is not None:
list_len += 1
head = head.next
return list_len
def find_first_common_node(head1, head2):
len_1 = get_list_len(head1)
len_2 = get_list_len(head2)
head_long, head_short = head1, head2
head_diff = len_1 - len_2
if len_2 > len_1:
head_diff = len_2 - len_1
head_long, head_short = head2, head1
for _ in xrange(head_diff):
head_long = head_long.next
while head_long is not None and head_short is not None \
and head_long != head_short:
head_long = head_long.next
head_short = head_short.next
return head_short