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);    }}

这里写图片描述

原创粉丝点击