《微软面试题》判断2个单向链表的是否有交叉点
来源:互联网 发布:php存储base64 编辑:程序博客网 时间:2024/06/11 20:45
微软亚院之编程判断俩个链表是否相交
给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。
为了简化问题,我们假设俩个链表均不带环。
问题扩展:
1.如果链表可能有环列?
main.cpp
给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。
为了简化问题,我们假设俩个链表均不带环。
问题扩展:
1.如果链表可能有环列?
2.如果需要求出俩个链表相交的第一个节点列?
comNode.h
#pragma once//check two single-list does have com nodetemplate<typename T>class ListNode{public:ListNode(T t){data = t;next = NULL;}T data;ListNode * next;protected:private:};template<typename T>class List{public:List(){cur = NULL;}ListNode<T> * cur;void pushback(ListNode<T> * node){if (cur == NULL){cur = node;}else{cur->next = node;cur = node;cur->next = NULL;}}ListNode<T> * GetEnd(){while(cur->next != NULL){cur = cur->next;}return cur;}protected:private:};
main.cpp
typedef ListNode<int> _listnode;typedef List<int> _list;int _tmain(int argc, _TCHAR* argv[]){_list mylist,mylist2;for (int i=0;i<10;i++){_listnode *p = new _listnode(i);mylist.pushback(p);if (i == 5){mylist2.pushback(p);}}printf("end data=%d\n",mylist.GetEnd()->data);printf("end data=%d\n",mylist2.GetEnd()->data);if (mylist2.GetEnd() == mylist.GetEnd()){printf("same end node\n");}getchar();return 0;}
问题可归结为,如有相同end节点,则有交叉点。
- 《微软面试题》判断2个单向链表的是否有交叉点
- 判断数组中是否有重复的数——微软面试题
- 单向链表判断是否有环
- 判断单向链表是否有环
- 判断一个单向链表是否有环路的算法
- 单向链表相交的第一个公共结点, 判断链表是否有环以及环的入口节点
- 判断两个链表是否交叉,并求出交叉点
- 判断两个链表是否交叉,并求出交叉点
- 判断两个链表是否交叉,并求出交叉点
- 单向链表的一个面试题
- 百度面试题-判断是否有环
- 【面试题】判断链表中是否有环
- 第7题 微软亚院之编程判断俩个链表是否相交 给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交,并找出第一个相交结点。
- 如何判断一个单向链表是否有环路?
- 如何判断一个单向链表是否有环路
- 判断两个单向链表是否有交点
- 判断一个单向链表是否有环
- 判断一个单向链表是否有环
- VC 中socket编程步骤
- 代理(Proxy)模式的浅解
- 创建split按钮
- 多态性
- 啊哈,临床执业医师考试一次通过了,自己庆祝下吧!
- 《微软面试题》判断2个单向链表的是否有交叉点
- appFuse 2.1.0 跳过表删除重建操作
- Not unique table/alias
- 基于UDP的socket
- NYOJ 8 一种排序
- UE菜单乱码
- hadoop使用lzo压缩文件笔记 (CDH3u1)
- Spring管理session的一些认识和用法心得
- 鼠标移动实现标签自动切换