题解 | #两个链表的第一个公共结点#
两个链表的第一个公共结点
https://www.nowcoder.com/practice/6ab1d9a29e88450685099d45c9e31e46
import java.util.*; /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class Solution { public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) { ListNode node1 = pHead1; ListNode node2 = pHead2; //创建list 用来存储第一个链表的所有节点 ArrayList<ListNode> list = new ArrayList<ListNode>(); while(node1 != null){ list.add(node1); node1 = node1.next; } //判断第一个链表中是否包含第二个链表的节点 while(node2 != null){ if(list.contains(node2)){//找到第一个包含的节点 就是公共链表的起始节点 return node2; } node2 = node2.next; } return null; } }