【剑指offer】面试题52:两个链表的第一个公共节点
来源:互联网 发布:打口鞋淘宝匡威能买吗 编辑:程序博客网 时间:2024/06/05 20:57
题目
输入两个链表,找出它们的第一个公共结点。
思路
关键:
这题的关键点在于,这两个链表,如果有公共点,
那么从他们的公共点开始,到链表结束,在两个链表中是一致的。
解法1:
使用两个栈
解法2:
1.首先遍历两个链表得到它们的长度m, n (m > n)
2.在长度为m的链表上先走m-n步
3.同时在两个链表上遍历,第一个相同的节点就是他们的第一个公共节点
代码(解法2)
/** * 题目: * 输入两个链表,找出它们的第一个公共结点。 * * 关键: * 这题的关键点在于,这两个链表,如果有公共点, * 那么从他们的公共点开始,到链表结束,在两个链表中是一致的。 * * 解法1: * 使用两个栈 * * 解法2: * 1.首先遍历两个链表得到它们的长度m, n (m > n) * 2.在长度为m的链表上先走m-n步 * 3.同时在两个链表上遍历,第一个相同的节点就是他们的第一个公共节点 * * @author peige */public class _52_FirstCommonNodesInLists { public static class ListNode { public int val; public ListNode next = null; ListNode(int val) { this.val = val; } } public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) { if(pHead1 == null || pHead2 == null) return null; int len1 = 0; int len2 = 0; ListNode cur1 = pHead1; ListNode cur2 = pHead2; // 求链表1、链表2长度 for(ListNode cur = pHead1; cur != null; cur = cur.next) ++len1; for(ListNode cur = pHead2; cur != null; cur = cur.next) ++len2; if(len1 > len2) { for(int i = 0; i < len1 - len2; ++i) cur1 = cur1.next; } else { for(int i = 0; i < len2 - len1; ++i) cur2 = cur2.next; } while(cur1 != null) { if(cur1 == cur2) return cur1; cur1 = cur1.next; cur2 = cur2.next; } return null; }}
测试
/** * 太简单了就不测试了 0.0 * * @author peige */public class _52_Test {}
阅读全文
0 0
- 【剑指offer】面试题52:两个链表的第一个公共节点
- 剑指offer面试题37 两个链表的第一个公共节点
- [剑指offer][面试题37]两个链表的第一个公共节点
- 剑指offer 面试题37—两个链表的第一个公共节点
- 《剑指Offer》面试题:寻找两个链表的第一个公共节点
- 剑指Offer面试题37:两个链表的第一个公共节点
- 剑指offer——面试题37:两个链表的第一个公共节点
- 剑指offer-面试题37 两个链表的第一个公共节点
- 【面试题】剑指Offer-37-求两个链表的第一个公共节点
- [剑指offer]面试题37.两个链表中的第一个公共节点
- 剑指offer-两个链表的第一个公共节点
- 【剑指offer】两个链表的第一个公共节点
- 剑指offer-两个链表的第一个公共节点
- 【剑指offer】两个链表的第一个公共节点
- 剑指offer------两个链表的第一个公共节点
- 《剑指offer》两个链表的第一个公共节点
- 剑指offer-两个链表的第一个公共节点
- 剑指offer--两个链表的第一个公共节点
- 《零基础入门学习Python》学习过程笔记【021匿名函数】
- 杭电oj1157 排序 参考1040
- 一个程序来比较cuda/c在GPU/CPU的运行效率
- 多校1001 HDU-6045. Is Derek lying? 逻辑题
- 多校1006 HDU-6050. Funny Function 数学推导题
- 【剑指offer】面试题52:两个链表的第一个公共节点
- 《零基础入门学习Python》学习过程笔记【022,023,024递归】
- 解题报告: #115 Min Stack
- Ubuntu——安装搜狗拼音输入法
- C++、python、CUDA性能分析--矩阵乘法
- IA32体系32位Linux系统虚拟地址映射上
- 图像处理22:图像模糊(滤波器)
- 用minicom查看串口消息
- IA32体系32位Linux系统虚拟地址映射中