剑指offer
写出高质量的博客
人生如棋,走好每一步。
展开
-
题24:反转链表(简单题)
#include <stack>#include <stdio.h>#include <stdlib.h>struct ListNode{ int m_nValue; ListNode* m_pNext;};ListNode* CreateListNode(int value){ ListNode* pNode = new ListNode(); pNode->m_nValue = value;原创 2021-10-27 14:12:46 · 62 阅读 · 0 评论 -
题6:从尾到头打印链表(简单题)
在打印链表的时候不修改链表的结构?方法一:用栈实现;方法二:用递归实现。#include <stack>#include <stdio.h>#include <stdlib.h>struct ListNode{ int m_nValue; ListNode* m_pNext;};ListNode* CreateListNode(int value){ ListNode* pNode = new ListNode(原创 2021-10-27 10:47:37 · 64 阅读 · 0 评论 -
题30: 包含min函数的栈(简单题)
题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min、push及pop的时间复杂度都是O(1)。解题思路:添加辅助栈。#include <stack>#include <assert.h>#include <cstdio>template <typename T>class StackWithMin{public: StackWithMin() {} virtual ~StackW原创 2021-10-26 19:20:53 · 58 阅读 · 0 评论 -
题9:用两个栈实现队列(简单题)
#include <stack>#include <stdio.h>using namespace std;template <typename T>class CQueue{public: CQueue(void); ~CQueue(void); // 在队列末尾添加一个结点 void appendTail(const T& node); // 删除队列的头结点 T deleteHead();原创 2021-10-26 15:49:38 · 83 阅读 · 0 评论