首页 > 试题广场 >

遍历链表

[编程题]遍历链表
  • 热度指数:13697 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
建立一个升序链表并遍历输出。

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


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

输入

4
3 5 7 9

输出

3 5 7 9
Java 
import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()){
            int n = scanner.nextInt();
            int[] a = new int[n];
            for (int i = 0; i < n; i++) a[i] = scanner.nextInt();
            Arrays.sort(a);
            for (int i : a) System.out.print(i+" ");
        }
    }
}


发表于 2020-03-18 19:32:36 回复(0)
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
public class Main{
    private static void sort(int[] number,int l,int r){
        if(l<r){
            
           
        int i = l;int j = r;
            int x = number[i];
            while(i<j){
            
            while(i<j&&number[j]>=x)
                j--;
            if(i<j){
                number[i] = number[j];
                i++;
            }
            while(i<j&&number[i]<x){
                i++;
            }
            if(i<j){
                number[j] = number[i];
                j--;
            }
        }
        number[i] = x;
        sort(number,l,i-1);
        sort(number,i+1,r);
    }
        }
    public static void main(String[] args)throws IOException{
        InputStreamReader in = new InputStreamReader(System.in);
        BufferedReader reader = new BufferedReader(in);
        int n = Integer.parseInt(reader.readLine());
        String[] line = reader.readLine().split(" ");
        reader.close();
        int[] number = new int[n];
        for(int i = 0;i<n;i++){
            number[i] = Integer.parseInt(line[i]);
        }
        sort(number,0,n-1);
        
        MyList list = new MyList(number,0,n);
        System.out.print(list.val);
        
        for(int i = 1;i<n;i++) {
            list = list.next;
            System.out.print(" "+list.val);
        }
        
    }
}
class MyList{
    int val;
    boolean flag = false;
    MyList next = null;
    
    public MyList(){
        
    }
    public MyList(int[] num,int x,int n){
        if(x<n){
            this.val = num[x];
            
                this.next = new MyList(num,x+1,n);
            
        }
    }
}

发表于 2019-01-18 16:02:40 回复(0)
import java.util.Scanner; public class Main{
// 排序
public static void sort(int[] data) {
// 插入排序
for (int i = 1; i < data.length; i++) {
int j = i;
int target = data[i];
while (j > 0 && target < data[j - 1]) {
data[j] = data[j - 1];
j--;
}
data[j] = target;
}
}
// 执行插入
public static void insert(Node head, int[] data) {
head.item = data[0];
Node current = head;
for (int i = 1; i < data.length; i++) {
current.next = new Node(data[i]);
current = current.next;
}
current.next = null;
}
// 循环遍历
public static void travel(Node head) {
for (Node first = head; first != null; first = first.next) {
System.out.print(first.item + " ");
}
System.out.println();
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (input.hasNext()) {
int N = input.nextInt();
int[] array = new int[N];
for (int i = 0; i < N; i++) {
array[i] = input.nextInt();
}
sort(array);
Node head = new Node();
insert(head, array);
travel(head);
}
}
}
class Node {
Integer item;
Node next;
public Node() {
}
public Node(Integer item) {
this.item = item;
}
}
本地通过 却出错 求找错
发表于 2017-05-26 12:28:20 回复(0)
//求告知哪里错了。
import java.util.Arrays;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		while(input.hasNextInt()){
            int n = input.nextInt();
            int[] arr = new int[n];
            for (int i = 0; i < n; i++) {
                arr[i] = input.nextInt();
            }

            Arrays.sort(arr);
            traverseList(createList(arr));
        }

	}

	static Node createList(int[] arr) {

		Node n0 = new Node(arr[0]);
		Node end = n0;
		for (int i = 1; i < arr.length; i++) {
			Node temp = new Node(arr[i]);
			end.next = temp;
			end = temp;
		}

		return n0;
	}

	static void traverseList(Node head) {
		while (head != null) {
			System.out.print(head.value + " ");
			head = head.next;
		}
	}
}

class Node {
	Node(int value) {
		this.value = value;
	}

	int value;
	Node next;
}


发表于 2017-03-22 20:23:24 回复(0)