算法题目---从尾到头打印链表
来源:互联网 发布:linux怎么粘贴 编辑:程序博客网 时间:2024/06/07 05:28
输入一个链表的头结点,从尾到头反过来打印出每个结点的值。
#include<iostream>
#include<stdio.h>#include<stdlib.h>
#include<stack>
using namespace std;
struct ListNode
{
int m_nValue;
ListNode *m_pNext;
};
void PrintListReversingly_Iteratively(ListNode *pHead)
{
stack<ListNode*>nodes;
ListNode *pNode = pHead;
while(pNode != NULL)
{
nodes.push(pNode);
pNode = pNode->m_pNext;
}
while(!nodes.empty())
{
pNode = nodes.top();
printf("%d\t",pNode->m_nValue);
nodes.pop();
}
printf("\n");
}
//采用递归方法
{
if(pHead != NULL)
{
if(pHead->m_pNext != NULL)
{
PrintListReversingly_Recursively(pHead->m_pNext);
}
printf("%d\t",pHead->m_nValue);
}
}
void AddToTail(ListNode **pHead,int value)
{
ListNode *pNew = new ListNode();
pNew->m_nValue = value;
pNew->m_pNext = NULL;
if(*pHead == NULL)
{
*pHead = pNew;
}
else
{
ListNode *pNode = *pHead;
while(pNode->m_pNext != NULL)
pNode = pNode->m_pNext;
pNode->m_pNext = pNew;
}
}
//删除结点
{
if(pHead == NULL || *pHead == NULL)
return;
ListNode *pToBeDeleted = NULL;
if((*pHead)->m_nValue == value)
{
pToBeDeleted = *pHead;
*pHead = (*pHead)->m_pNext;
}
else
{
ListNode *pNode = *pHead;
while(pNode->m_pNext != NULL && pNode->m_pNext->m_nValue != value)
pNode = pNode->m_pNext;
if(pNode->m_pNext != NULL && pNode->m_pNext->m_nValue == value)
{
pToBeDeleted = pNode->m_pNext;
pNode->m_pNext = pNode->m_pNext->m_pNext;
}
}
if(pToBeDeleted != NULL )
{
delete pToBeDeleted;
pToBeDeleted = NULL;
}
}
void test()
{
//ListNode *p = (ListNode*)malloc(sizeof(ListNode));
//ListNode *p;// error
ListNode *p = NULL;
AddToTail(&p,1);
AddToTail(&p,2);
AddToTail(&p,3);
AddToTail(&p,4);
AddToTail(&p,5);
PrintListReversingly_Iteratively(p);
printf("\n");
RemoveNode(&p,3);
PrintListReversingly_Recursively(p);
printf("\n");
}
阅读全文
0 0
- 算法题目-从尾到头打印链表
- 算法题目---从尾到头打印链表
- 算法-从尾到头打印链表
- 题目1511:从尾到头打印链表
- 题目1511:从尾到头打印链表-九度
- 题目1511:从尾到头打印链表
- 题目1511:从尾到头打印链表
- 【九度】题目1511:从尾到头打印链表
- 题目1511:从尾到头打印链表
- 题目1511:从尾到头打印链表
- 题目1511:从尾到头打印链表
- 题目1511:从尾到头打印链表
- 题目1511:从尾到头打印链表
- 题目1511:从尾到头打印链表
- 题目1511:从尾到头打印链表
- 题目5:从尾到头打印链表
- 面试算法(四)从尾到头打印链表
- 算法练习三:从尾到头打印链表
- UE(虚幻)4 蓝图可视化编程进阶篇 01 信息交互
- RPC-02-Thrift
- PLSQL Developer怎么导出数据库
- 各种热修复方案对比热修复
- 原生应用接入ReactNative
- 算法题目---从尾到头打印链表
- background-attachment 背景图片是否跟随滚动
- RPC-01-架构
- 字体大师可让你随意在线写字,而且还能售卖
- Java实现输入一个字符串,去重后逆序输出
- jcaob中读取word中的内容,并显示出来
- AngularJS的事件
- office 2010 安装时出错 MSXML版本6.10.1129.0终极解决方案
- 控件缩写大全