输入一个链表的头结点,从尾到头反过来输出每个结点的值
来源:互联网 发布:网络推广的手段有哪些 编辑:程序博客网 时间:2024/03/28 18:51
题目:输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下:
struct ListNode
{
int m_nKey;
ListNode* m_pNext;
};
这题我目前有两个思路,把这个链表做成反向链表,另一个是用递归的方法。其实还可以用栈来实现,但是考虑到栈比较麻烦就算了。
递归方法:
#include<stdio.h>#include<stdlib.h>struct ListNode{ int m_nKey; ListNode* m_pNext;};void Display(struct ListNode *listnode){if(listnode==NULL)return ;else{Display(listnode->m_pNext);printf("%d ",listnode->m_nKey);}}int main(){struct ListNode *listnode ;listnode=(struct ListNode *)malloc(sizeof(struct ListNode));listnode->m_nKey=10;listnode->m_pNext=NULL;struct ListNode *temp;temp=(struct ListNode *)malloc(sizeof(struct ListNode));temp->m_nKey=5;temp->m_pNext=listnode;listnode=temp;Display(listnode);getchar();return 0;}
#include<stdio.h>#include<stdlib.h>struct ListNode{ int m_nKey; ListNode* m_pNext;};struct ListNode * ReverNode( struct ListNode *listnode ){if(listnode==NULL )return NULL;struct ListNode *pre=NULL;struct ListNode *temp=listnode;struct ListNode *p_temp=listnode;while(p_temp!=NULL){//一定要注意这里的顺序,,ABCD ,比如p_temp现在指在 B 处,你要先把 p_temp 的指针指向 C ,//才能将 B 指向 A ,否则 CD 会丢掉的。然后还要将 B 记录下来,不然你等下也找不到呢。p_temp=p_temp->m_pNext;temp->m_pNext=pre;pre=temp;temp=p_temp;}return pre;}void Display(struct ListNode *listnode){struct ListNode *tempnode=listnode;while(tempnode!=NULL){printf("%d ",tempnode->m_nKey);tempnode= tempnode->m_pNext;}printf("\n");}int main(){ struct ListNode *listnode ;struct ListNode *tempnode ;listnode=(struct ListNode *)malloc(sizeof(struct ListNode));listnode->m_nKey=10;listnode->m_pNext=NULL; //弄了两个数据测试一下。tempnode=(struct ListNode *)malloc(sizeof(struct ListNode));tempnode->m_nKey=5;tempnode->m_pNext=listnode;listnode=tempnode;listnode=ReverNode( listnode);Display(listnode);getchar();return 0;}
0 0
- 输入一个链表的头结点,从尾到头反过来输出每个结点的值
- 输入一个链表的头结点,从尾到头反过来输出每个结点的值
- 输入一个链表的头结点,从尾到头反过来输出每个结点的值
- 输入一个链表的头结点,从尾到头反过来输出每个结点的值
- 输入一个链表的头结点,从尾到头反过来输出每个结点的值
- 输入一个链表的头结点,从尾到头反过来输出每个结点的值。
- 输入一个链表的头结点,从尾到头反过来输出每个结点的值
- 输入一个链表的头结点,从尾到头反过来输出每个结点的值
- 输入一个链表的头结点,从尾到头反过来打印每个结点的值
- 题目:输入一个链表的头结点,从尾到头反过来输出每个结点的值
- 题目:输入一个链表的头结点,从尾到头反过来输出每个结点的值
- 题目:输入一个链表的头结点,从尾到头反过来输出每个结点的值。
- 题目:输入一个链表的头结点,从尾到头反过来输出每个结点的值
- 输入一个链表的头结点,从尾到头反过来打印每个节点的值。
- 输入一个链表的头结点,从尾到头反过来打印每个节点的值。
- 输入一个链表的头结点,从尾到头反过来打印出每个结点的值
- 题目:输入一个链表的头结点,从尾到头反过来打印出每个结点的值
- 输入一个链表的头结点,从尾到头反过来打印每个结点的值——5
- 计算机 整体知识 概述
- 用户端数字证书使用方法简单说明
- JDK的卸载、安装与配置
- Maven nexus 安装nexus : wrapper | OpenSCManager failed - 拒绝访问。 (0x5)
- DataGridView导出excel
- 输入一个链表的头结点,从尾到头反过来输出每个结点的值
- linux 文本显示和处理命令
- 二叉排序树之递归陷阱
- html第3.4.五章超文本链接
- ASP.NET MVC 过滤器(四)
- bzoj3401[Usaco2009 Mar]Look Up 仰望
- 在Centos上安装与配置Tomcat
- Spring缓存简单介绍(Spring Cache)
- uva 10795 - A Different Task (递归+状态转移)