随笔分类 -  链表和栈操作

摘要:题目:输入俩个递增排序的链表,合并这两个链表,使合并后的链表任然是有序的。 struct ListNode{ int value; ListNode* next; }; 利用递归实现的代码如下: 阅读全文
posted @ 2016-04-26 00:30 General_up 阅读(400) 评论(0) 推荐(0)
摘要:题目:给定单项链表的头指针和一个结点指针,定义一个函数在o(1)的时间删除该结点,链表的定义如下: struct ListNode{ int value; ListNode* next; }; 函数定义:void DeleteNode(ListNode** PListHead,ListNode* p 阅读全文
posted @ 2016-04-25 00:36 General_up 阅读(1340) 评论(0) 推荐(1)
摘要:题目:定义一个函数,输入一个链表的头节点,反转该链表并返回反转后链表的头节点,链表的定义如下: struct ListNode{ int value; ListNode* next; }; 链表反转的过程中要防止链表的断裂,假设每次都必须保存当前扫描节点的上一个结点,和下一个节点,不停的扫描此节点是 阅读全文
posted @ 2016-04-24 23:41 General_up 阅读(509) 评论(0) 推荐(0)
摘要:题目一:用两个栈实现队列,队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列的尾部插入节点和在队列的头部删除节点的功能。 template <class T> class CQueue { CQueue(); ~CQueue(); void appendTa 阅读全文
posted @ 2016-04-18 18:35 General_up 阅读(588) 评论(0) 推荐(0)
摘要:输入一个链表的头结点,从尾到头反过来打印每个结点的值。 链表的节点定义如下: struct ListNode{ int value; ListNode* next; } 首先回顾一下链表的基本操作 链表的后插入: //注意,传入的参数是指向指针的指针,而不是ListNode* phead,因为代码中 阅读全文
posted @ 2016-04-17 01:32 General_up 阅读(1239) 评论(0) 推荐(0)