不改变链表结构:“后进先出”
遍历链表,将节点依次添加进栈中。再从栈中依次取出顶点元素作为从后向前遍历链表。
vector<int> result;//存储输出的节点的值
stack<struct ListNode*> nodes;//用栈来存储每个节点
struct ListNode* pNode = head;//从链表头开始
while (pNode != NULL){ //链表的所有节点全部入栈
nodes.push(pNode);
pNode = pNode->next;
}
while (!nodes.empty()){ //出栈:后进先出
pNode = nodes.top();
result.push_back(pNode->val);
nodes.pop();
}
return result;
本文介绍了一种不改变链表原始结构实现逆序遍历的方法。通过使用栈的“后进先出”特性,首先将链表节点依次压入栈中,然后按顺序弹出以实现逆序遍历并存储节点值。
1318

被折叠的 条评论
为什么被折叠?



