Linked list reversal using stack【1月19日学习笔记】

点击查看代码
//Linked list reversal using stack
#include<iostream>
#include<stack>//stack from standard template library(STL)
using namespace std;
struct node {
	char data;
	node* next;
};
node* A;//全局头指针

void reverse() {
	if (A == NULL) return;//空列表直接退出
	stack<node*> S;//node*指针型的stack

	node* run = A;
	while (run != NULL) {
		S.push(run);
		run = run->next;
	}//遍历打印模式push
	run = S.top();//run退回到末节点
	A = run;//头指针指向末节点
	S.pop();//pop掉末节点地址

	while (!S.empty()) {//stack不为空时
		run->next = S.top();//run指向节点尾巴指向上一节点
		S.pop();//pop掉已用节点地址
		run = run->next;//run继续退回(run指向节点尾巴已指向上一节点)
	}
	run->next = NULL;//1节点尾巴赋空
}

int main() {
	
}
posted @ 2024-01-19 19:54  bituion  阅读(14)  评论(0)    收藏  举报