c++的链表用java怎么写
时间: 2024-01-01 08:06:59 浏览: 22
Java中也有链表的概念,可以使用Java中的LinkedList类来实现链表数据结构。以下是C++中链表的代码,以及对应的Java代码实现:
C++代码实现:
```c++
#include <iostream>
using namespace std;
//定义链表节点结构体
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
//定义链表类
class LinkedList {
public:
//构造函数
LinkedList() {
head = NULL;
}
//向链表中添加元素
void addNode(int val) {
ListNode *newNode = new ListNode(val);
if (head == NULL) {
head = newNode;
}
else {
ListNode *cur = head;
while (cur->next != NULL) {
cur = cur->next;
}
cur->next = newNode;
}
}
//遍历链表
void traverse() {
ListNode *cur = head;
while (cur != NULL) {
cout << cur->val << " ";
cur = cur->next;
}
cout << endl;
}
private:
ListNode *head; //链表头结点
};
//主函数
int main() {
LinkedList list;
list.addNode(1);
list.addNode(2);
list.addNode(3);
list.addNode(4);
list.traverse();
return 0;
}
```
Java代码实现:
```java
public class LinkedList {
//定义链表节点内部类
private class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
private ListNode head; //链表头结点
//构造函数
public LinkedList() {
head = null;
}
//向链表中添加元素
public void addNode(int val) {
ListNode newNode = new ListNode(val);
if (head == null) {
head = newNode;
}
else {
ListNode cur = head;
while (cur.next != null) {
cur = cur.next;
}
cur.next = newNode;
}
}
//遍历链表
public void traverse() {
ListNode cur = head;
while (cur != null) {
System.out.print(cur.val + " ");
cur = cur.next;
}
System.out.println();
}
//主函数
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.addNode(1);
list.addNode(2);
list.addNode(3);
list.addNode(4);
list.traverse();
}
}
```