两个链表的公共值
来源:互联网 发布:虚拟专用网vpn 软件 编辑:程序博客网 时间:2024/06/05 20:52
现有两个升序链表,且链表中均无重复元素。请设计一个高效的算法,打印两个链表的公共值部分。
给定两个链表的头指针headA和headB,请返回一个vector,元素为两个链表的公共部分。请保证返回数组的升序。两个链表的元素个数均小于等于500。保证一定有公共值
测试样例:
{1,2,3,4,5,6,7},{2,4,6,8,10}
返回:[2.4.6]
代码如下:
package lianbiao;import java.util.ArrayList;import java.util.List;public class lianbiaogonggongzhi {public static void main(String[] args) {ListNode headA = new ListNode(3);ListNode headA2 = new ListNode(4);ListNode headA3 = new ListNode(5);headA.next = headA2;headA2.next = headA3;ListNode headB = new ListNode(4);ListNode headB2 = new ListNode(5);ListNode headB3 = new ListNode(6);ListNode headB4 = new ListNode(7);headB.next = headB2;headB2.next = headB3;headB3.next = headB4;int[] arr = lianbiaogonggongzhi.findCommonParts(headA, headB);for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]+" ");}}public static int[] findCommonParts(ListNode headA, ListNode headB) {// write code hereList<Integer> list = new ArrayList<Integer>();while (headA != null && headB != null) {if (headA.val < headB.val) {headA = headA.next;} else if (headA.val > headB.val) {headB = headB.next;} else {list.add(headA.val);headA = headA.next;headB = headB.next;}}int[] arr = new int[list.size()];for (int i = 0; i < arr.length; i++) {arr[i] = list.get(i);}return arr;}static class ListNode {int val = 0;ListNode next = null;ListNode(int val) {this.val = val;}}}
0 0
- 两个链表的公共值
- 打印两个链表的公共值
- 两个链表的公共第一个公共节点
- 打印两个链表的公共值练习题
- 打印两个链表的公共值练习
- 链表12: 打印两个链表的公共值
- 两个链表的公共链表
- 找两个链表的公共节点
- 两个链表的公共结点
- 两个链表的公共结点
- 两个链表的公共结点
- offer37--两个链表的公共节点
- C++两个链表的公共结点
- 两个链表公共结点
- 找出两个链表的第一个公共结点--总结
- 找到两个单向链表的第一个公共节点
- 找出两个链表的第一个公共结点
- 找两个链表的第一个公共结点
- Object 类
- linux awk sort 统计ip出现次数
- MongoDB启动问题
- Elasticsearch java API (3)
- SQL 处理序列化的方法
- 两个链表的公共值
- 机器学习实战(二)--决策树
- 拦截导弹
- Java单线程连接SQL server2012数据库[JDBC驱动]
- 简单工厂模式
- 如何将ppt转换成pdf格式的文档
- Linux学习-基础知识
- CSS权威指南-候选样式表
- 链表指定值清除