# 相交链表

解题思路:

使用双层循环,外层循环遍历链表 A,内层循环遍历链表 B,当找到相交节点时,直接返回。

class Solution {
public:
  ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
    ListNode *currentNode = headA;

    while (currentNode != nullptr) {
      ListNode *anotherNode = headB;

      while (anotherNode != nullptr) {
        if (currentNode == anotherNode) return currentNode;

        anotherNode = anotherNode->next;
      }

      currentNode = currentNode->next;
    }

    return nullptr;
  }
};

官方提供了使用哈希集合、双指针 2 种方式更为高效,可点击参考链接 (opens new window)查看。

# 参考