17_合并两个有序链表
来源:互联网 发布:2017最新网络诈骗 编辑:程序博客网 时间:2024/06/06 01:53
题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。
import java.util.Scanner;//链表的结构class LinkedList { int data; LinkedList next;}public class UnionLinkList{ // 建立单链表 // 输入的参数:单链表的头结点 public static void createLinkedList(LinkedList cur,int k) { Scanner scanner = new Scanner(System.in); String data; System.out.println("输入单链表"+k+",以#结束(输入完最后一个结点,仍需要空格,再加#):"); while (true) { data = scanner.next(); if (data.equals("#")) { cur.next = null; break; } LinkedList node = new LinkedList(); node.data = Integer.valueOf(data); cur.next = node; cur = cur.next; } } // 合并后的链表 // 输入的参数:链表a,链表b,合并后的链表 public static LinkedList union(LinkedList a,LinkedList b,LinkedList union){ LinkedList pc = union = a; LinkedList pa = a.next; LinkedList pb = b.next; while(pa != null && pb != null){ if(pa.data < pb.data){ pc.next = pa; pc = pa; pa = pa.next; }else{ pc.next = pb; pc = pb; pb = pb.next; } if(pa != null){ pc.next = pa; } if(pb != null){ pc.next = pb; } } return union; } // 打印单链表 // 输入的参数:链表头指针 public static void printLinkList(LinkedList head){ if(head == null || head.next == null){ return; } head = head.next; while(head != null){ System.out.print(head.data+" "); head = head.next; } System.out.println(); } public static void main(String[] args) { LinkedList a = new LinkedList(); LinkedList b = new LinkedList(); createLinkedList(a,1); createLinkedList(b,2); LinkedList union = null; union = union(a,b, union); System.out.println("排序后链表:"); printLinkList(union); }}
阅读全文
0 0
- 17_合并两个有序链表
- 17合并两个有序链表PYTHON
- 有序的合并两个有序链表
- 两个有序链表合并为有序
- 剑指Offer_面试题17_合并两个有序链表
- 合并两个有序链表
- 合并两个有序链表
- 合并两个有序链表
- 合并两个有序链表
- 合并两个有序链表
- 合并两个有序链表
- 合并两个有序链表
- 合并两个有序链表
- 两个有序链表合并
- 合并两个有序链表
- 两个有序链表合并
- 合并两个有序链表
- 合并两个有序链表
- 杂项 数据竞赛
- 10-1 DAIRY
- 对象、属性、方法、 封装与继承
- 20171003WindowsPrj08_01消息钩子
- JNI之C代码访问java中的成员和java调C
- 17_合并两个有序链表
- VirtualBox+openwrt+ubuntu16.04 互ping实现ssh
- 【POJ
- ARC082 E
- CodeForces
- 阿里云服务器搭建后台(Ubuntu)
- python 学习生成器和迭代器 8皇后问题
- What is N? HDU
- PHP实现二级联动