九度oj 1181 升序链表

来源:互联网 发布:双开软件 编辑:程序博客网 时间:2024/05/01 11:37

题目链接点击打开链接

题目描述:

建立一个升序链表并遍历输出。

输入:

输入的每个案例中第一行包括1个整数:n(1<=n<=1000),接下来的一行包括n个整数。

输出:

可能有多组测试数据,对于每组数据,
将n个整数建立升序链表,之后遍历链表并输出。

样例输入:
43 5 7 9
样例输出:
3 5 7 9

采用插入排序的思想,使链表升序

代码如下:

import java.io.*;import java.util.*;public class Main {   public static void main(String[] args) {      Scanner cin = new Scanner(new InputStreamReader(System.in));      PrintWriter cout = new PrintWriter(System.out) ;            while(cin.hasNext()){      new Solve(cin.nextInt()).solve(cin , cout) ;      }      cout.flush() ;      cout.close();          }}class Node{int val ;Node next ;Node(int val){this.val = val ;next = null ;}Node(){next = null ;}}class Solve{Node head = null ;int n ;Solve(int n){this.n = n ;}void solve(Scanner cin , PrintWriter cout){head = new Node() ;for(int i = 1 ; i<= n ; i++){ //插入排序Node p = head ;Node now = new Node(cin.nextInt()) ;while(p.next != null && p.next.val <= now.val  )p = p.next ;now.next = p.next ;p.next = now ; }Node p = head.next ;cout.print(p.val);while(p.next != null){p = p.next ;cout.print(" " + p.val);}cout.println();//cout.flush();}}


0 0
原创粉丝点击