C++创建链表并打印链表
时间: 2024-06-17 15:00:55 浏览: 9
在C++中,创建链表并打印链表涉及以下几个步骤:
1. **创建链表节点**[^1]:
```cpp
// 定义链表节点
struct ListNode {
int data;
ListNode* next;
ListNode(int val) : data(val), next(nullptr) {} // 构造函数
};
```
2. **构建链表类**:
```cpp
class LinkList {
private:
ListNode* _dummyHead; // 伪头节点
unsigned _len = 0; // 链表长度
// 构造函数
LinkList() : _dummyHead(new ListNode(0)) { _dummyHead->next = nullptr; } // 初始化链表为空
};
```
3. **添加元素**:
- **添加到头部**:
```cpp
void addAtHead(int val) {
ListNode* newNode = new ListNode(val);
newNode->next = _dummyHead->next;
_dummyHead->next = newNode;
_len++;
}
```
- **添加到尾部**:
```cpp
void addAtTail(int val) {
ListNode* newNode = new ListNode(val);
if (_len == 0) {
_dummyHead->next = newNode;
} else {
ListNode* lastNode = _dummyHead->next;
while (lastNode->next != nullptr) {
lastNode = lastNode->next;
}
lastNode->next = newNode;
}
_len++;
}
```
4. **打印链表**:
```cpp
void printList() {
ListNode* currentNode = _dummyHead->next;
while (currentNode != nullptr) {
std::cout << currentNode->data << " ";
currentNode = currentNode->next;
}
std::cout << "\n";
}
```
5. **完整示例**:
```cpp
// 创建链表并添加元素
LinkList list;
list.addAtHead(1);
list.addAtTail(3);
list.addAtHead(0);
// 打印链表
list.printList(); // 输出:0 1 3
```