牛客网——两个链表的第一个公共结点
来源:互联网 发布:数据对接的接口及方式 编辑:程序博客网 时间:2024/05/29 19:43
输入两个链表,找出它们的第一个公共结点。
解法思路:
从第一个公共结点开始,后面的结点都会相同,那么可以考虑用栈来存储两个链表。
然后依次将栈顶相同的结点输出去,用last结点来保存最后一次相同的结点,当两个栈顶的元素不同时。就可以return了。
public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/import java.util.Stack;public class Solution { public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) { if(pHead1==null||pHead2==null)return null; Stack<ListNode> stack1 = new Stack<>(); Stack<ListNode> stack2 = new Stack<>(); ListNode head1 = pHead1 ; ListNode head2 = pHead2 ; while(head1!=null){ stack1.push(head1); head1 = head1.next; } while(head2!=null){ stack2.push(head2); head2 = head2.next; } ListNode last = null; while(true){ if(stack1.isEmpty()||stack2.isEmpty())break; ListNode p = stack1.pop(); ListNode q = stack2.pop(); if(p==q){ last = p; } else {break;} } return last; }}
0 0
- 牛客网 | 两个链表的第一个公共结点
- 牛客网——两个链表的第一个公共结点
- 剑指offer——两个链表的第一个公共结点
- 《剑指offer》——两个链表的第一个公共结点
- 《剑指offer》——两个链表的第一个公共结点
- 剑指offer——两个链表的第一个公共结点
- 剑指offer——两个链表的第一个公共结点
- 剑指offer——两个链表的第一个公共结点
- 剑指offer——两个链表的第一个公共结点
- 剑指Offer——(36)两个链表的第一个公共结点
- 剑指offer——36.两个链表的第一个公共结点
- 剑指offer——面试题37:两个链表的第一个公共结点
- 剑指offer—两个链表的第一个公共结点
- 面试题37—两个链表的第一个公共结点
- 找出两个链表的第一个公共结点--总结
- 找出两个链表的第一个公共结点
- 找两个链表的第一个公共结点
- 找出两个链表的第一个公共结点
- 基于PCA的人脸特征提取及人脸重建
- HDU 5546 Ancient Go——dfs
- Java中的类与对象
- Struts2 标签
- 【编程】【leetcode】345.Reverse Vowels of a String
- 牛客网——两个链表的第一个公共结点
- effective java 读书笔记---第二章创建和销毁对象
- Hadoop入门参考链接汇集
- Git错误non-fast-forward后的冲突解决
- 抽象类
- UVa
- exterC
- yum安装本地rpm软件
- codeforce789A