题
吃纸狂人
菜的抠脚
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
虚函数指针的位置
class Test{ public: int a; int b; virtual void fun() {} Test(int temp1 = 0, int temp2 = 0) { a=temp1 ; b=temp2 ; } int getA() { return a; }...原创 2019-07-29 20:30:42 · 414 阅读 · 0 评论 -
剑指offer——二叉树的下一个结点
题目: 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 分析: struct TreeLinkNode { int val; struct TreeLinkNode *left; struct TreeLinkNode *right; struct TreeLinkNod...原创 2019-08-13 20:36:37 · 133 阅读 · 0 评论 -
剑指offer——把二叉树打印成多行(二叉树的层次遍历)
题目:从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 利用队列的特性,先进先出,li用队列的元素个数控制每次循环的次数 vector<vector<int> > Print(TreeNode* pRoot) { vector<vector<int>> arr; if(pRoot == NULL...原创 2019-08-13 16:55:15 · 121 阅读 · 0 评论 -
剑指offer——第一个只出现一次的数
在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写)。 第一种map表 遍历一遍字符串,将所有字母放入map表中,第二遍循环,找出第一个只出现一次的字符 int FirstNotRepeatingChar(string str) { if ( str.length()...原创 2019-07-28 11:25:35 · 171 阅读 · 0 评论 -
剑指offer——包含min函数的栈
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 刚开始我想着用一个变量来保存这个栈的最小值,但是如果这个值被出栈了,那么我的第二小的值怎么得出来?但是这个特性很符合栈的特性,那么我们就要借用一个辅助栈来保存第二小,第三小第四小的值。 当入的1,2 此刻辅助栈中只有1,没有2,2出栈后1还是最小的值(有点相岔,原先的栈也还是栈不能先出1,必...原创 2019-07-27 19:22:51 · 147 阅读 · 0 评论 -
剑指offer——两个链表的合并
我怕是要丸,链表合并不会写了!!!!!!!!!!!!! 题目:输入两个单调递增的链表,输出两个链表合成后的链表,合成后的链表满足单调递增。 首先递归方法 struct ListNode { int val; struct ListNode *next; }; ListNode* ReverseList(ListNode* pHead) { if(pHead == NU...原创 2019-07-22 20:17:29 · 133 阅读 · 0 评论 -
剑指offer——栈的压入、弹出序列
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的) 思路: 借用一个辅助栈,pushV[i]数据与popV[j]数据不相等时,将pushV[i]...原创 2019-07-23 15:41:02 · 126 阅读 · 0 评论 -
剑指offer——两个链表的第一个公共节点
输入两个链表,找出它们的第一个公共结点。 思路:利用栈 相当于Y型链表 4 5结点的地址是相同的所以,3的next和0的next相同 首先利用栈将两个链表的节点压入栈,然后分别pop栈,直到如果栈顶元素不相同,及当stack1= 3的节点时,stack2=0时的节点,此刻我们返回栈顶元素的下一个,就是链表的第一个公共点节点地址。 如果没有if(pHead1 == p...原创 2019-08-04 15:56:48 · 162 阅读 · 0 评论 -
剑指offer——重建二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 采用递归的思想 前序遍历序列{1,2,4,7,3,5,6,8} 前序遍历是根左右的遍历方式,所以可以得知1是整个树的根 中序遍历序列{4,7,2,1,...原创 2019-07-25 21:18:55 · 122 阅读 · 0 评论 -
剑指offer——树的子结构
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val;...原创 2019-07-30 19:23:42 · 135 阅读 · 0 评论 -
剑指offer——数组中重复的数字
题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 分析 遍历数组,如果数组的值与下标不对应,那么numbers[i] 的值作为下标,找到当前数组的下标为numbers...原创 2019-08-14 20:37:56 · 174 阅读 · 0 评论
分享