zoukankan      html  css  js  c++  java
  • 10.两个链表的交叉

    题目:请写一个程序,找到两个单链表最开始的交叉节点。

     注意事项
    • 如果两个链表没有交叉,返回null
    • 在返回结果后,两个链表仍须保持原有的结构。
    • 可假定整个链表结构中没有循环。

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        /**
         * @param headA: the first list
         * @param headB: the second list
         * @return: a ListNode
         */
        ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
            // write your code here
           stack<ListNode *> stackA, stackB;
            ListNode * result = NULL, *pA = headA, *pB = headB;
            if (headA == NULL || headB == NULL)
                return result;
            while (pA != NULL) {
                stackA.push(pA);
                pA = pA->next;
            }
            while (pB != NULL) {
                stackB.push(pB);
                pB = pB->next;
            }

            while (!stackA.empty() && !stackB.empty()) {
                if (stackA.top() == stackB.top()) {
                    result = stackA.top();
                    stackA.pop();
                    stackB.pop();
                } else {
                    break;
                }
            }
            return result;
        }
    };

  • 相关阅读:
    Excel.Application使用手册
    VMwareworkstationfull9.0.1894247+汉化补丁(2013.1.22)+有效密钥
    3个月ESET全系列产品试用用户名和密码
    各大安软官方卸载工具
    MDX语法学习filter与iif的使用
    SET XACT_ABORT 用法
    wcf传输List<t>
    存储过程中SELECT与SET对变量赋值
    SQL Server 定时备份数据库(作业)
    数据仓库MDX实际应用
  • 原文地址:https://www.cnblogs.com/ALIMAI2002/p/7211376.html
Copyright © 2011-2022 走看看