作者:qw874515 | 来源:互联网 | 2024-11-23 12:53
最近遇到了一个关于单链表的编程问题,这是来自福富公司的笔试题目。以往我通常使用C语言来解决这类问题,但这次决定尝试用Java来实现。该题目要求实现一个单链表,并完成特定的方法。
最近遇到一个有趣的编程问题,这是福富公司笔试中的一道题目,涉及到了单链表的实现。通常情况下,我习惯于使用C语言来解决这类问题,但这次我决定尝试使用Java来完成。题目要求我们实现一个单链表,并且需要完成几个特定的方法。
首先,我们需要定义一个单链表的节点类,这个类将包含节点的数据(例如整数)以及指向下一个节点的引用。此外,还需要实现一个构造函数来初始化单链表,另一个构造函数用于根据给定的数组创建单链表,最后还需要实现一个方法来打印单链表中的最大值及其位置。
1 public class SingleLinkedList {
2 static class Node {
3 int value;
4 Node next;
5
6 Node(int value) {
7 this.value = value;
8 this.next = null;
9 }
10 }
11
12 private Node head;
13
14 public SingleLinkedList() {
15 head = new Node(0); // 哨兵节点
16 }
17
18 public SingleLinkedList(int[] values) {
19 head = new Node(0);
20 Node current = head;
21 for (int value : values) {
22 Node newNode = new Node(value);
23 current.next = newNode;
24 current = newNode;
25 }
26 }
27
28 public void printMaxValueAndPosition() {
29 if (head.next == null) {
30 System.out.println("链表为空");
31 return;
32 }
33 Node current = head.next;
34 int maxValue = current.value;
35 int position = 0;
36 int index = 0;
37 while (current != null) {
38 if (current.value > maxValue) {
39 maxValue = current.value;
40 position = index;
41 }
42 current = current.next;
43 index++;
44 }
45 System.out.println("最大值: " + maxValue + ", 位置: " + position);
46 }
47 }
上述代码首先定义了一个静态内部类 Node
来表示单链表的节点,每个节点包含一个整数值和一个指向下一个节点的引用。然后,我们实现了两个构造函数,一个用于创建空链表,另一个用于根据给定的数组创建链表。最后,我们实现了一个 printMaxValueAndPosition
方法,用于遍历链表并找到最大值及其位置。
欢迎对我的实现提出任何意见或建议,非常感谢!