hunter學演算法-判斷兩個鏈表相交於某結點

來源:互聯網
上載者:User

問題:

  • 如何判斷兩個鏈表相交於某結點?

分析:

  • 圖紙描述鏈表相交時候情境!
  • 發現相交與不相交的區別與特點!

結論:

  • 發現相交的鏈表,相交點後面的結點都是相同的,通過簡化,可以得出最後一個結點必是同一個結點。

//============================================================================// Name        : LinedListCrossing.cpp// Author      : jue// Version     :// Copyright   : Your copyright notice// Description : Hello World in C++, Ansi-style//============================================================================#include <stdio.h>#include <stdlib.h>typedef struct Node{struct Node *next;int data;}LinkedList;bool isLinkedListCossing(LinkedList *l1,LinkedList *l2){Node *node1 = l1;while(node1->next){node1 = node1->next;}Node *node2 = l2;while(node2->next){node2 = node2->next;}return node2 == node1;}int main(){LinkedList* l1 = (LinkedList*)malloc(sizeof(LinkedList*));LinkedList* l2 = (LinkedList*)malloc(sizeof(LinkedList*));Node* node_a = (Node*)malloc(sizeof(Node*));Node* node_b = (Node*)malloc(sizeof(Node*));Node* node_c = (Node*)malloc(sizeof(Node*));node_a->data = 1;node_a->next = node_b;node_b->data = 2;node_b->next = node_c;node_c->data = 3;node_c->next = NULL;//l1->next = node_a;//l1->data = 0;l2->next = node_b;l2->data = 0;bool isTrue = isLinkedListCossing(l1,l2);printf("is cossring = %s",isTrue ? "true" : "false");return 0;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.