交替合并两个链表给定一个链表 L1: L0->L1->L2->L3->L4....Ln
给定一个链表 L2: Lm->Lm+1->L....LM+n
例如输入链表1:head->1->3->5->7链表2:head->2->4->6->8->10->12输出:head->1->2->3->4->5->6->7->8->10->12
    private static class ListNode {Object value;ListNode next;public ListNode(Integer value) {this.value = value;}}public static void main(String[] args) {ListNode head1 = new ListNode(null);ListNode head2 = new ListNode(null);ListNode node1 = new ListNode(1);ListNode node2 = new ListNode(2);ListNode node3 = new ListNode(3);ListNode node4 = new ListNode(4);ListNode node5 = new ListNode(5);ListNode node6 = new ListNode(6);ListNode node7 = new ListNode(7);ListNode node8 = new ListNode(8);ListNode node10 = new ListNode(10);ListNode node12 = new ListNode(12);head1.next = node1;node1.next = node3;node3.next = node5;node5.next = node7;head2.next = node2;node2.next = node4;node4.next = node6;node6.next = node8;node8.next = node10;node10.next = node12;merge(head1.next, head2.next);}private static ListNode merge(ListNode list1, ListNode list2) {print(list1);print(list2);ListNode listNode = new ListNode(0);ListNode pointer = listNode;// 定义二个指针ListNode current1 = list1;ListNode current2 = list2;while (current1 != null && current2 != null) {pointer.next = current1;current1 = current1.next;pointer.next.next = current2;current2 = current2.next;pointer = pointer.next.next;}if (current1 != null) {pointer.next = current1;}if (current2 != null) {pointer.next = current2;}print(listNode.next);return listNode.next;}/*** 打印链表* @param head*/public static void print(ListNode head) {ListNode current = head;while (current != null) {System.out.print(current.value+",");current = current.next;}System.out.println();System.out.println("**************");}

面试题:交替合并两个链表相关推荐

  1. 面试题25: 合并两个排序的链表

    /******************************************************************* *<剑指Offer--名企面试官精讲典型编程题>C ...

  2. 剑指offer面试题[17]-合并两个排序的链表

    题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 常考题: 假设两个链表如下: 链表1:   1  ->  3 -> 5 -> ...

  3. [剑指offer]面试题37:两个链表的第一个公共结点

    面试题37:两个链表的第一个公共结点 题目:输入两个链表,找出它们的第一个公共结点.链表结点定义如下: struct ListNode {int val;ListNode *next;ListNode ...

  4. 合并两个链表,去掉重复元素

    最近在学习机器学习的相关算法,写到DbScan算法发现在簇扩展时用到两个邻域中的点会重合,于是尝试了合并两个链表的两个算法. 最初用到这个方法,认为它简单易用.思路是定义一个链表存放合并后的链表lis ...

  5. 中数组的合并_【美团面试题】合并两个有序数组

    [美团面试题]合并两个有序数组 题目描述 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组 划重点 初始化 nums1 和 ...

  6. C语言实现合并两个链表 含注释

    本例子实现将两个链表合并,合并后的链表是第一个链表.通过将第二个链表连接到第一个链表的尾部实现.核心思想是:遍历第一个链表直到尾部,记录尾指针,然后将第二个链表连接到第一个链表尾部指针的 next 指 ...

  7. 剑指offer——面试题37:两个链表的第一个公共结点

    剑指offer--面试题37:两个链表的第一个公共结点 20180906整理 Solution1: 时间复杂度为O(n2)O(n2)O(n^2)的垃圾算法 /* struct ListNode {in ...

  8. leetcode刷题记录--数据结构;深度优先搜索算法;二叉树;平衡树;1020. 飞地的数量;1669. 合并两个链表;108. 将有序数组转换为二叉搜索树

    1020. 飞地的数量 难度中等131 给你一个大小为 m x n 的二进制矩阵 grid ,其中 0 表示一个海洋单元格.1 表示一个陆地单元格. 一次 移动 是指从一个陆地单元格走到另一个相邻(上 ...

  9. 剑指offer:面试题25. 合并两个排序的链表

    题目:合并两个排序的链表 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的. 示例1: 输入:1->2->4, 1->3->4 输出:1->1-& ...

最新文章

  1. 四年才等来的一天,务必要立志,要下决心!
  2. kubernetes+Azure DevOps实现.Net Core项目的自动化部署均衡负载
  3. [置顶] export命令-linux
  4. 二叉树层次遍历python_根据二叉树层序遍历顺序(数组),将其转换为二叉树(Python)...
  5. SpringBoot - WebJars
  6. android对错图标,Android Studio Gradle图标错误,清单合并
  7. Vue.js学习系列(九)---使用路由搭建单页应用(二)
  8. 为什么要使用面向对象编程
  9. 定义一个扁平的按钮样式
  10. e服务器系统可以用PE来装吗,U盘安装系统有哪些方式可以启动WinPE
  11. html文件系统错误的是,Windows10:文件系统错误2147219196
  12. 软件测试第三次作业-worldCount
  13. 关于如何用python下载文件
  14. 谷歌生物医学专用翻译_翻译软件的六大测评,请专家来支招
  15. 适合初中文凭学的计算机技术,初中毕业学啥技术好 最吃香的手艺
  16. 资源变现微信小程序安装教程
  17. linux sql server 迁移,SQL Server2008 实例数据迁移步骤
  18. GSP算法与SPADE算法
  19. 摄像头网页服务器,网络摄像头实现直播的方法 在网页浏览器播放等于可以在网页传播...
  20. 学会这两招将知网下载的CAJ转成Word形式

热门文章

  1. 防止浏览器窗口太小,设置最小宽度
  2. 黎曼猜想历史进展-大事记
  3. UVA - 1533 (Moving Pegs)
  4. Android全局桌面宠物 Unity方案实现
  5. 计算机维护工具盘,HB520WZ计算机维护工具盘(FBA文件,2013.10.18)
  6. 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。
  7. 从电工到软件工程师,听成功者亲诉(ZZ)
  8. 阿里云重大事故后,CEO,CTO,CPO全被换掉
  9. uniapp连接佳博打印机实现蓝牙打印票据功能
  10. [unreal] 寻路:随机漫游的实现