将数字各位存入链表类中
时间: 2023-08-04 19:17:52 浏览: 39
好的,我可以帮你解决这个问题。下面是一个示例代码,可以将一个数字的各位数字存入链表中:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def digit_to_list(num):
if num == 0:
return ListNode(0)
dummy = ListNode(0)
curr = dummy
while num > 0:
curr.next = ListNode(num % 10)
curr = curr.next
num //= 10
return dummy.next
```
这个函数接受一个整数 `num` 作为参数,将其各个数字存入链表中并返回链表的头节点。例如,如果 `num` 为 123,那么函数将返回一个链表,其头节点的 `val` 属性为 1,第二个节点的 `val` 属性为 2,第三个节点的 `val` 属性为 3。
相关问题
C++将数字各位存入链表类中
好的,下面是一个示例代码,可以将一个数字的各位数字存入链表中:
```c++
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
ListNode* digitToList(int num) {
if (num == 0) {
return new ListNode(0);
}
ListNode *dummy = new ListNode(0);
ListNode *curr = dummy;
while (num > 0) {
curr->next = new ListNode(num % 10);
curr = curr->next;
num /= 10;
}
return dummy->next;
}
```
这个函数接受一个整数 `num` 作为参数,将其各个数字存入链表中并返回链表的头节点。例如,如果 `num` 为 123,那么函数将返回一个链表,其头节点的 `val` 属性为 1,第二个节点的 `val` 属性为 2,第三个节点的 `val` 属性为 3。
将数字各位存入上述链表类设计的链表中
可以编写一个函数,将一个整数的各个数字存储在链表中,每个数字存储为一个节点。下面是一个示例代码:
```cpp
#include <iostream>
using namespace std;
// 定义链表节点类
class ListNode {
public:
int val;
ListNode* next;
ListNode(int val) {
this->val = val;
this->next = NULL;
}
};
// 定义链表类
class LinkedList {
private:
ListNode* head;
public:
LinkedList() {
head = NULL;
}
// 在链表末尾插入节点
void append(int val) {
ListNode* node = new ListNode(val);
if (head == NULL) {
head = node;
} else {
ListNode* p = head;
while (p->next != NULL) {
p = p->next;
}
p->next = node;
}
}
// 在链表头部插入节点
void prepend(int val) {
ListNode* node = new ListNode(val);
node->next = head;
head = node;
}
// 删除链表中第一个值为val的节点
void remove(int val) {
if (head == NULL) {
return;
}
if (head->val == val) {
ListNode* p = head;
head = head->next;
delete p;
return;
}
ListNode* p = head->next;
ListNode* prev = head;
while (p != NULL) {
if (p->val == val) {
prev->next = p->next;
delete p;
return;
}
prev = p;
p = p->next;
}
}
// 打印链表
void print() {
ListNode* p = head;
while (p != NULL) {
cout << p->val << " ";
p = p->next;
}
cout << endl;
}
};
// 将一个整数的各个数字存储在链表中
LinkedList intToLinkedList(int num) {
LinkedList list;
if (num == 0) {
list.append(0);
return list;
}
while (num > 0) {
int digit = num % 10;
list.prepend(digit);
num /= 10;
}
return list;
}
int main() {
LinkedList list = intToLinkedList(12345);
list.print();
return 0;
}
```
在`main`函数中,我们调用`intToLinkedList`函数将数字12345存储在链表中,并打印出链表中的各个节点的值:1 2 3 4 5。