hunter学算法-判断两个链表相交于某结点
2013-07-11 23:17
387 查看
问题:
如何判断两个链表相交于某结点?
分析:
图纸描述链表相交时候场景!
发现相交与不相交的区别与特点!
结论:
发现相交的链表,相交点后面的结点都是相同的,通过简化,可以得出最后一个结点必是同一个结点。
如何判断两个链表相交于某结点?
分析:
图纸描述链表相交时候场景!
发现相交与不相交的区别与特点!
结论:
发现相交的链表,相交点后面的结点都是相同的,通过简化,可以得出最后一个结点必是同一个结点。
//============================================================================ // 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; }
相关文章推荐
- 数据结构和算法设计专题之---判断两个链表是否相交并找出交点
- 判断两个无环链表是否相交,相交则返回相交首结点
- 判断链表有环没环及环的入口结点问题 和 判断两个链表是否相交
- 【算法之链表(二)】判断两个链表是否相交并找出交点
- 判断链表有环没环及环的入口结点问题 和 判断两个链表是否相交
- 编程之美-编程判断两个链表(可能含环)是否相交以及相交的第一个结点
- 判断链表有环没环及环的入口结点问题 和 判断两个链表是否相交
- 判断两个链表是否相交,如果相交如何找到第一个相交结点。
- 判断链表有环没环及环的入口结点问题 和 判断两个链表是否相交
- 每天一算法(判断两个单向链表是否相交)
- 判断链表有环没环及环的入口结点问题 和 判断两个链表是否相交
- 3.6 判断两个无环链表是否相交 & 找出相交的第一个结点
- 算法题006 判断两个链表是否相交
- 判断链表有环没环及环的入口结点问题 和 判断两个链表是否相交
- 判断链表有环没环及环的入口结点问题 和 判断两个链表是否相交
- 判断两个无头结点的单链表是否相交
- 百度笔试算法第二题:如何判断两个单向链表是否有相交,并找出交点
- 算法6— 判断两个链表是否相交
- 两个单向链表,判断它们是否相交,若相交,找出它们的第一个公共的结点
- 给出两个单向链表的头指针,比如h1、h2, 判断链表是否相交