【剑指Offer】两个链表的第一个公共节点 解题报告(Python)

【剑指Offer】两个链表的第一个公共节点 解题报告(Python)

标签(空格分隔): 剑指Offer


题目地址:https://www.nowcoder.com/ta/coding-interviews

题目描述:

输入两个链表,找出它们的第一个公共结点。

解题方法

既然想到了,是从后往前找第一个不公共的,所以可以用栈来做呀~~全部入栈,然后同时出栈,直到不相等为止就行。

代码:

# -*- coding:utf-8 -*-
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
class Solution:
    def FindFirstCommonNode(self, pHead1, pHead2):
        stack1 = []
        stack2 = []
        while pHead1:
            stack1.append(pHead1)
            pHead1 = pHead1.next
        while pHead2:
            stack2.append(pHead2)
            pHead2 = pHead2.next
        pre = None
        while stack1 and stack2 and stack1[-1] == stack2[-1]:
            pre = stack1.pop()
            stack2.pop()
        return pre

Date

2018 年 3 月 22 日 – 睡了个懒觉,感觉好幸福。。

你可能感兴趣的:(算法,牛客网,剑指offer)