求两个单链表的共同节点


int getlength(ListNode* listnode){
    int count =0;
    ListNode* temp = listnode;
    while(temp!=NULL){

        count ++;
        temp = temp->next;
    }
}

Listnode * getcommon(ListNode* list1, ListNode* list2){

    int length1 = getlength(list1);
    int length2 = getlength(list2);

    if(length1>length2){
        ListNode* longlist = list1;
        ListNode* shortlist = list2;
        int diff = length1 - length2;
    } else{
        ListNode* longlist = list2;
        ListNode* shortlist = list1;
        int diff = length2 - length1;
    }

    for (int i=0;i<diff;i++){
        longlist = longlist->next;
    }

    while (longlist->next!= NULL && shortlist!= NULL && (longlist != shortlist)){
        longlist = longlist->next;
        shortlist = shortlist->next;

    }
    return longlist;


}
发布了95 篇原创文章 · 获赞 8 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/ttomchy/article/details/104779699