一旦它们有公共节点,那么第一个公共节点及其之后节点都是共用的。 这样看来就很像逆序查看,逆序用栈很方便。 用两个栈分别存放两条链表。然后开始弹出两个栈的内容进行检查,如果是一致的就再弹出,直到不一致结束循环。如果全部都一致,那么有一个链表为空了也会结束循环。 这样我们只需要在一致的每一个节点都更新ans的值就好。 时间复杂度是O(n+m),空间复杂度是O(n+m)。 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Sol...