当前位置:   article > 正文

Leetcode——相交链表求相交的起始节点(若无返回空)_链表相交的第一个节点 leetcode

链表相交的第一个节点 leetcode

给你两个单链表的头节点 headAheadB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null

  1. /**
  2. * Definition for singly-linked list.
  3. * struct ListNode {
  4. * int val;
  5. * struct ListNode *next;
  6. * };
  7. */
  8. struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB)
  9. {
  10. if(headA == NULL || headB == NULL)
  11. return NULL;
  12. //若链表有一个为空链表,则直接返回NULL
  13. struct ListNode*p1 = headA,*p2 = headB;//定义两个分别指向两个链表头节点的指针
  14. while(p1 != p2)
  15. {
  16. p1 = (p1!=NULL?p1->next:headB);
  17. //若p1的next不为空,p1往后移动一个节点,若为空,p1指向另一链表的头节点
  18. p2 = (p2!=NULL?p2->next:headA);
  19. //若p2的next不为空,p1往后移动一个节点,若为空,p2指向另一链表的头节点
  20. }
  21. return p1;
  22. //任意返回一个指针,指向即为相交节点因为两个指针在交点相遇
  23. }

主函数自行编写,调用该函数即可。 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/588971
推荐阅读
相关标签
  

闽ICP备14008679号