找出两个链表的第一个公共节点
来源:互联网 发布:不该 周杰伦 知乎 编辑:程序博客网 时间:2024/06/05 10:26
思路:
两个链表的第一个公共节点即同一个节点,因为链表的遍历都是从头开始,因此如果两个链表的长度相等,只要同步遍历即可得到第一个共同节点;
代码如下:
ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) { if(pHead1==NULL || pHead2==NULL) return NULL; int length1=GetListLength(pHead1); int length2=GetListLength(pHead2); ListNode* pLong=pHead1; ListNode* pShort=pHead2; int k=length1-length2; if(length1<length2){ k=length2-length1; pLong=pHead2; pShort=pHead1; } while(k>0){ pLong=pLong->next; k--; } while(pLong && pShort&& pLong!=pShort){ pLong=pLong->next; pShort=pShort->next; } if(pLong!=NULL&&pShort!=NULL) return pLong; return NULL; } int GetListLength(ListNode* root){ int count=0; while(root!=NULL){ root=root->next; count++; } return count; }
阅读全文
0 0
- 找出两个链表的第一个公共节点
- 找出两个链表的第一个公共节点
- Java找出两个链表的第一个公共节点
- 找出两个链表的第一个公共节点
- 输入两个链表,找出他们第一个公共节点
- 程序员面试题精选——找出两个链表的第一个公共节点
- 输入两个链表,找出它们的第一个公共节点(值)
- 面试题04:找出两个单向链表的第一个公共节点
- 找出二叉树中某两个节点的第一个公共祖先
- 两个链表的公共第一个公共节点
- 找出两个链表的第一个公共结点--总结
- 找出两个链表的第一个公共结点
- 找出两个链表的第一个公共结点
- 找出两个链表的第一个公共结点
- 找出两个链表的第一个公共结点
- 找出两个链表的第一个公共结点
- 找出两个链表的第一个公共结点
- 找出两个链表的第一个公共结点
- CentOS6.5编译安装Nginx的方法
- 神奇的快速幂算法!!
- 一次完整的HTTP事务是怎样一个过程?
- 只有输赢两种结果的游戏
- (java)纯代码用spring里集成的RabbitMQ实现一个简单的收发程序
- 找出两个链表的第一个公共节点
- SHA安全算法
- 图像识别常见的数据集
- c#获取数据库中某一行的数据
- Enable VT-x in your BIOS security settings (refer to document for your computer) 系统:win10 电脑: Leno
- redis集群所得
- Eclipse Java EE IDE 汉化后处理版怎样设置代码字体大小
- Servlet的相关介绍
- gcc -g option flag