📅  最后修改于: 2023-12-03 14:54:30.435000             🧑  作者: Mango
在C++中,打印链表的元素是一项基本操作。下面介绍几种打印链表元素的方法。
循环打印是最基本的方法,其时间复杂度为O(n),具体代码如下:
void printList(ListNode* head) {
ListNode* p = head;
while(p != nullptr) {
cout << p->val << " ";
p = p->next;
}
}
递归打印是一种比较简洁的方法,其时间复杂度也为O(n),具体代码如下:
void printList(ListNode* head) {
if(head != nullptr) {
cout << head->val << " ";
printList(head->next);
}
}
栈打印是一种利用栈的特性来实现的方法,其时间复杂度为O(n),具体代码如下:
void printList(ListNode* head) {
stack<ListNode*> stk;
ListNode* p = head;
while(p != nullptr) {
stk.push(p);
p = p->next;
}
while(!stk.empty()) {
cout << stk.top()->val << " ";
stk.pop();
}
}
以上是三种打印链表元素的方法,根据实际情况选择相应的方法即可。