题解 | #两个链表的第一个公共结点#

两个链表的第一个公共结点

https://www.nowcoder.com/practice/6ab1d9a29e88450685099d45c9e31e46

stack解法:
两个链表先分别进栈
再依次出栈,从后向前遍历遇到第一个不相等的节点
返回上一个相同节点即可
class Solution {
public:
    ListNode* FindFirstCommonNode(ListNode* pHead1,ListNode* pHead2) {
        ListNode* res = NULL;
        if(!pHead1 || !pHead2)
            return res;
        stack<ListNode*> stack1;
        stack<ListNode*> stack2;
        while(pHead1){
            stack1.push(pHead1);
            pHead1 = pHead1->next;
        }
        while(pHead2){
            stack2.push(pHead2);
            pHead2 = pHead2->next;
        }
        if(stack1.top() != stack2.top())
            return res;
        while(stack1.size() != 0 && stack2.size() != 0){
            res = stack1.top();
            stack1.pop();
            stack2.pop();
            if(!stack1.empty() && !stack2.empty() && stack1.top() != stack2.top())
                return res;
        }
        return res;
    }
};


全部评论

相关推荐

用户64975461947315:这不很正常吗,2个月开实习证明,这个薪资也还算合理,深圳Java好多150不包吃不包住呢,而且也提前和你说了没有转正机会,现在贼多牛马公司骗你说毕业转正,你辛辛苦苦干了半年拿到毕业证,后面和你说没hc了😂
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客企业服务