用Java编写一个结点为10以内随机数且结点个数为10的单链表,打印每个结点的值,并求出所有结点总和。
时间: 2023-09-22 12:06:18 浏览: 129
### 回答1:
以下是实现该题的Java代码:
```
import java.util.Random;
class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
next = null;
}
}
public class Main {
public static void main(String[] args) {
Random random = new Random();
ListNode head = null;
ListNode tail = null;
int sum = 0;
for (int i = 0; i < 10; i++) {
int val = random.nextInt(10);
ListNode node = new ListNode(val);
sum += val;
if (head == null) {
head = node;
tail = node;
} else {
tail.next = node;
tail = node;
}
}
ListNode current = head;
while (current != null) {
System.out.println(current.val);
current = current.next;
}
System.out.println("所有结点总和: " + sum);
}
}
```
代码说明:
- 定义了一个ListNode类,表示链表中的结点;
- 在main函数中,使用Random生成10个0~9之间的随机数,并将它们添加到单链表中;
- 打印每个结点的值,使用while循环遍历链表;
- 最后,求出所有结点总和并输出。
### 回答2:
以下是用Java编写一个结点为10以内随机数且结点个数为10的单链表,打印每个结点的值,并求出所有结点总和的示例代码:
```java
import java.util.Random;
class Node {
int value;
Node next;
public Node(int value) {
this.value = value;
}
}
public class LinkedList {
public static void main(String[] args) {
Node head = generateLinkedList(10);
printLinkedList(head);
int sum = calculateSum(head);
System.out.println("所有节点的总和为:" + sum);
}
// 生成一个具有指定个数的随机数节点的单链表
public static Node generateLinkedList(int count) {
Node head = new Node((int) (Math.random() * 10));
Node currentNode = head;
Random random = new Random();
for (int i = 1; i < count; i++) {
int value = random.nextInt(10);
Node newNode = new Node(value);
currentNode.next = newNode;
currentNode = newNode;
}
return head;
}
// 打印单链表的每个节点值
public static void printLinkedList(Node head) {
Node currentNode = head;
while (currentNode != null) {
System.out.print(currentNode.value + " ");
currentNode = currentNode.next;
}
System.out.println();
}
// 计算单链表所有节点的总和
public static int calculateSum(Node head) {
int sum = 0;
Node currentNode = head;
while (currentNode != null) {
sum += currentNode.value;
currentNode = currentNode.next;
}
return sum;
}
}
```
这段代码首先定义了一个`Node`类,用于表示单链表的节点,每个节点有一个整数值`value`和一个指向下一个节点的指针`next`。然后在`LinkedList`类中,通过`generateLinkedList`方法生成了一个具有指定个数的随机数节点的单链表,并通过`printLinkedList`方法打印每个节点的值。最后,使用`calculateSum`方法计算了所有节点的总和,并将结果打印出来。
### 回答3:
可以使用Java编写一个随机数生成器,生成10以内的随机数,并使用单链表存储这些随机数。具体代码如下:
```
import java.util.Random;
class Node {
int value;
Node next;
public Node(int value) {
this.value = value;
}
}
public class LinkedListExample {
public static void main(String[] args) {
Node head = generateLinkedList();
printLinkedList(head);
int sum = getSum(head);
System.out.println("所有结点的总和为:" + sum);
}
public static Node generateLinkedList() {
Node head = new Node(-1); // 创建头结点
Node current = head;
Random random = new Random();
for (int i = 0; i < 10; i++) {
int value = random.nextInt(10); // 生成0到9的随机数
Node newNode = new Node(value);
current.next = newNode;
current = newNode;
}
return head.next; // 返回除去头结点的链表
}
public static void printLinkedList(Node head) {
Node current = head;
while (current != null) {
System.out.println(current.value);
current = current.next;
}
}
public static int getSum(Node head) {
Node current = head;
int sum = 0;
while (current != null) {
sum += current.value;
current = current.next;
}
return sum;
}
}
```
以上代码先创建一个头结点,然后使用循环生成10个随机数,并创建结点存储这些随机数。接着定义了两个方法,一个用来打印链表的每个结点的值,另一个用来计算所有结点的总和。最后在主函数中调用这些方法并输出结果。
阅读全文