Advertisement

经典算法学习:逆向链表

阅读量:

链表作为数据结构中的一种关键线性结构,在各类考试及面试中频繁出现。其中,一个典型的题目为“给定链表的头节点,按照从尾到头的顺序依次输出每个节点的值”,这实际上就是对链表进行逆序处理。或许有人注意到,这一问题正是《剑指Offer》中所包含的一道经典题目。关于该问题的具体实现方式,我已经上传至 https://github.com/chenyufeng1991/ReverseLinkedList_Stack

解决该问题最常见的方式是借助栈结构。在逐个访问链表节点的过程中,将每个节点依次压入栈中。当所有节点完成入栈操作后,再从栈顶依次弹出元素,此时获得的节点顺序即为链表从尾到头的排列方式。在C++编程语言中,通过STL库实现栈结构非常便捷,相关代码示例如下:

复制代码
 /** *  输入一个链表的头结点,从尾到头打印链表的每一个节点
    
  */
    
 #include <iostream>
    
 #include <stdlib.h>
    
 #include <stack>
    
  
    
 using namespace std;
    
  
    
 typedef struct ListNode{
    
     int element;
    
     struct ListNode *next;
    
 }Nod

全部评论 (0)

还没有任何评论哟~