设计一个算法,从右向左打印一个双链表中各个结点的值。
时间: 2023-05-13 13:07:14 浏览: 87
可以使用逆序遍历双链表的方式,从尾结点开始遍历,依次输出每个结点的值。具体实现可以使用递归或者栈来实现。
递归实现:
void printListReversingly(ListNode* pHead) {
if (pHead == nullptr) {
return;
}
printListReversingly(pHead->next);
cout << pHead->val << " ";
}
栈实现:
void printListReversingly(ListNode* pHead) {
stack<ListNode*> nodes;
ListNode* pNode = pHead;
while (pNode != nullptr) {
nodes.push(pNode);
pNode = pNode->next;
}
while (!nodes.empty()) {
pNode = nodes.top();
cout << pNode->val << " ";
nodes.pop();
}
}
相关问题
设计一个算法,从右向左打印一个双链表中各个结点的值
可以使用双指针的方式,先将指针指向双链表的尾部,然后依次向前遍历,输出每个节点的值即可。
具体实现步骤如下:
1. 定义两个指针p和q,分别指向双链表的尾部和倒数第二个节点。
2. 从p开始向前遍历,每经过一个节点就输出该节点的值。
3. 当p指向头节点时,遍历结束。
代码实现如下:
void printListReverse(ListNode* head) {
if (head == nullptr) {
return;
}
ListNode* p = head;
while (p->next != nullptr) {
p = p->next;
}
ListNode* q = p->prev;
while (q != nullptr) {
cout << q->val << " ";
q = q->prev;
}
}
4设计个算法, 从右向左打印一个双链表中各个结点的值。
可以使用逆序遍历双链表的方式,从尾部开始依次输出每个节点的值。具体实现可以使用递归或者栈来实现。
递归实现:
void printListReverse(Node* node) {
if (node == NULL) {
return;
}
printListReverse(node->next);
printf("%d ", node->val);
}
栈实现:
void printListReverse(Node* node) {
stack<Node*> s;
while (node != NULL) {
s.push(node);
node = node->next;
}
while (!s.empty()) {
Node* cur = s.top();
s.pop();
printf("%d ", cur->val);
}
}
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![xmind](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)