算法练习三:从尾到头打印链表

原创 2015年11月19日 16:11:33
/*输入一个链表,从尾到头打印链表每个节点的值。 
思路1:反转链表,然后输出*/
/**
*  struct ListNode {
*        int val;
*        struct ListNode *next;
*        ListNode(int x) :
*              val(x), next(NULL) {
*        }
*  };
*/
vector<int> printListFromTailToHead(struct ListNode* head)
{
	vector<int> res;
	if(NULL == head)
		return res;
	ListNode *p = NULL;
	ListNode *q = head;
	ListNode *r = head->next;
	while(q)
	{
		q->next = p;
		p = q;
		q = r;
		if(r)
			r = r->next;
	}
	while(p)
	{
		res.push_back(p->val);
		p = p->next;
	}
	return res;
}


/*输入一个链表,从尾到头打印链表每个节点的值。 
思路2:利用栈,然后输出*/
/**
*  struct ListNode {
*        int val;
*        struct ListNode *next;
*        ListNode(int x) :
*              val(x), next(NULL) {
*        }
*  };
*/
vector<int> printListFromTailToHead(struct ListNode* head)
{
	vector<int> res;
	if(NULL == head)
		return res;
	stack<int> TempS;
	while(head)
	{
		TempS.push(head->val);
		head = head->next;
	}
	while(!TempS.empty())
	{
		res.push_back(TempS.top());
		TempS.pop();
	}
	return res;
}


相关文章推荐

算法学习记录三(C++)--->从尾到头打印链表每个节点的值

描述 输入一个链表,从尾到头打印链表每个节点的值。 思路对于这种颠倒顺序的问题,我们应该就会想到栈,后进先出。所以,这一题要么自己使用栈,要么让系统使用栈,也就是递归。注意链表为空的情况。时间复杂度为...

算法-从尾到头打印链表

题目: 输入一个链表,要求从尾到头打印该链表,链表结点定义如下:struct ListNode { int value; ListNode *next; };解题思路: 要求很好理解,比如...

数据结构与算法-从尾到头打印链表

剑指offer上经典的题目:输入一个链表的头结点,然后从尾到头打印每个节点的值思路1:链表的遍历只能从头到尾,而这里需要实现从尾到头打印,可见这是典型的“先进后出”,所以我们可以采用栈这种数据类型来实...

1511 从尾到头打印链表

  • 2014年10月24日 12:12
  • 410B
  • 下载

剑指Offer----面试题五:从尾到头打印链表

前述: 链表的创建、结点的插入、结点的删除等操作都只需要20行左右的代码就能实现,其代码量比较适合面试。 链表问题:面试题5“从尾到头输出链表”、面试题13“在O(1)时间删除链表结点”、面试题15“...

《剑指offer》---从尾到头打印链表 和 重建二叉树

《剑指offer》—从尾到头打印链表 和 重建二叉树

面试题5: 从尾到头打印链表

一. 题目输入一个链表的头结点,从尾到头反过来打印出每个节点的值.代码请到我的代码库中下载 Point2Offer二. 代码package com;import java.util.Stack;/**...

从尾到头打印链表(java版)

【题目描述】输入一个链表,从尾到头打印链表每个节点的值。【解题思路1】 //1. 遍历链表,使用一个ArrayList存储各个链表结点。 //2. 将ArrayList关于对称中心,进行翻转。得到...

题目1511:从尾到头打印链表

题目描述: 输入一个链表,从尾到头打印链表每个节点的值。 输入: 每个输入文件仅包含一组测试样例。 每一组测试案例包含多行,每行一个大于0的整数,代表一个链表的节点。第...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:算法练习三:从尾到头打印链表
举报原因:
原因补充:

(最多只允许输入30个字)