zoukankan      html  css  js  c++  java
  • 两个链表的第一个公共结点

    题目描述

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

    代码

    /*
    struct ListNode {
    	int val;
    	struct ListNode *next;
    	ListNode(int x) :
    			val(x), next(NULL) {
    	}
    };*/
    class Solution {
    public:
        ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) {
            int len1 = len(pHead1), len2 = len(pHead2);
            ListNode *cur1 = pHead1, *cur2 = pHead2;
            int dif = len1 - len2;
            
            if (len1 < len2) {//cur1指向长的
                cur1 = pHead2, cur2 = pHead2;
                dif = len2 - len1;
            }
            
            int count = 0;
            while (count < dif) {
                cur1 = cur1->next;
                ++count;
            }
            
            while (cur2 != NULL) {
                if (cur1 == cur2) {
                    return cur1;
                }
                cur1 = cur1->next;
                cur2 = cur2->next;
            }
            return NULL;
        }
        
        int len(ListNode* head) {//邱链表长度
            ListNode* cur = head;
            int count = 0;
            while (cur != NULL) {
                ++count;
                cur = cur->next;
            }
            return count;
        }
    };
    
  • 相关阅读:
    day37 事务
    小组分享
    day36 pymysql 索引
    day 35 多表查询
    day 35 作业
    day 34 作业
    AST 节点类型对照表
    babel _shallowEqual.default
    js Proxy
    Symbol
  • 原文地址:https://www.cnblogs.com/jecyhw/p/6590360.html
Copyright © 2011-2022 走看看