博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
九度题目1505:两个链表的第一个公共结点
阅读量:2195 次
发布时间:2019-05-02

本文共 2025 字,大约阅读时间需要 6 分钟。

题目描述:

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

输入:

输入可能包含多个测试样例。

对于每个测试案例,输入的第一行为两个整数m和n(1<=m,n<=1000):代表将要输入的两个链表的元素的个数。
接下来的两行,第一行为第一个链表的所有元素,中间用空格隔开。第二行为第二个链表的所有元素,中间用空格隔开。

输出:

对应每个测试案例,

输出两个链表的第一个公共结点的值。
如果两个链表没有公共结点,则输出“My God”。

样例输入:
5 41 2 3 6 74 5 6 73 31 5 72 4 72 31 34 5 6
样例输出:
67My God

#include
#include
using namespace std;struct Node{ int val; Node *next; Node(int value):val(value),next(NULL){}};void list_construct(Node **head, int len){ int i; int val; Node *p; for(i=0;i
>val; if(NULL==*head) { *head = new Node(val); p = *head; } else { p->next = new Node(val); p = p->next; } } return;}void list_print(Node *head){ while(head) { cout<
val; head = head->next; } return;}int get_length(Node *head){ int len = 0; while(head) { len++; head = head->next; } return len;}int common_point(Node *list1, Node *list2){ int len1 = get_length(list1); int len2 = get_length(list2); Node *p; int len; if(len1
next; while(list1||list2) { if(list1->val==list2->val) return list1->val; else { list1 = list1->next; list2 = list2->next; } } if(list1==NULL) return INT_MIN; }int main(){ int m,n; Node *list1, *list2;//list must be null,each loop int result; while(cin>>m>>n) { list1 = list2 = NULL; //代码中要求是初始为NULL,否则报错 不初始默认不是NULL list_construct(&list1,m); list_construct(&list2,n); // list_print(list1); // list_print(list2); result = common_point(list1,list2); if(result==INT_MIN) cout<<"My God"<
此题难点不在算法,而在于链表的构建与处理上

1. 构建时,void list_construct(Node **head, int len);

注意Node **head

2. 求长度和其它

两链表长度的处理,把长的放在前面,好控制

3. 当构建时,两个list头要为空,因为代码是这样写的

转载于:https://my.oschina.net/vintnee/blog/640479

你可能感兴趣的文章
(PAT 1145) Hashing - Average Search Time (哈希表冲突处理)
查看>>
(1129) Recommendation System 排序
查看>>
PAT1090 Highest Price in Supply Chain 树DFS
查看>>
(PAT 1096) Consecutive Factors (质因子分解)
查看>>
(PAT 1019) General Palindromic Number (进制转换)
查看>>
(PAT 1073) Scientific Notation (字符串模拟题)
查看>>
(PAT 1080) Graduate Admission (排序)
查看>>
Play on Words UVA - 10129 (欧拉路径)
查看>>
mininet+floodlight搭建sdn环境并创建简答topo
查看>>
【linux】nohup和&的作用
查看>>
Set、WeakSet、Map以及WeakMap结构基本知识点
查看>>
【NLP学习笔记】(一)Gensim基本使用方法
查看>>
【NLP学习笔记】(二)gensim使用之Topics and Transformations
查看>>
【深度学习】LSTM的架构及公式
查看>>
【python】re模块常用方法
查看>>
剑指offer 19.二叉树的镜像
查看>>
剑指offer 20.顺时针打印矩阵
查看>>
剑指offer 21.包含min函数的栈
查看>>
剑指offer 23.从上往下打印二叉树
查看>>
剑指offer 25.二叉树中和为某一值的路径
查看>>