剑指offer:返回两个链表中的第一个公共节点

定义个返回值为ListNode的函数,有两个参数pHead1和pHead2,先判断有一个指针为空,则返回空;接着声明了两个指针变量P1和P2,为了遍历链表。当两个指针p1和p2不相等时,用了两个三目运算符,当p1为空时,p1指到pHead2所在的链表在遍历,不为空时就p1遍历完pHead1所在的链表;p2指针同理,如果有公共结点的话一定会相遇,没有的话返回空!!!

class Solution {
public:
    ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) {
        if(pHead1==nullptr ||pHead2==nullptr) return nullptr;
		ListNode* p1=pHead1;
		ListNode* p2 =pHead2;
		while(p1!=p2){
			p1=(p1==nullptr?pHead2:p1->next);
			p2=(p2==nullptr?pHead1:p2->next);

		}
		return p1;
    }
};

#剑指offer##23届找工作求助阵地#
全部评论

相关推荐

点赞 评论 收藏
分享
我即大橘:耐泡王
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务