![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
ZenYuan
这个作者很懒,什么都没留下…
展开
-
《剑指offer》面试题8:二叉树的下一个节点
题目:给定一棵二叉树和其中的一个节点,给出中序遍历的该节点的下一个节点。树的节点不仅仅有左右孩子还有指向父节点的指针。思路:1.判断该节点是否有右孩子,如果有:右孩子的最左的节点是该节点的下一个节点。 如果没有右孩子:判断该节点的父节点的左孩子是否为该节点,否者一直向上直到父节点为空。代码如下:BinaryTree* GetNext(BinaryTree* pNode) { ...原创 2018-07-16 11:51:53 · 159 阅读 · 0 评论 -
《剑指0ffer》-字符串处理问题
1.问题描述 实现一个对字符串的处理,将字符串多余的空格都去掉,去掉首部,尾部的字符串,中间最多一个空格;2.思路: 定义一个指针,从字符串头开始遍历,分三步走:去除头部字符串:遇到空格指针向前++,直到遇到第一个字符,将该字符覆盖掉传入字符串的首个元素去除中间字符串:如果中间有任意一个空格大于两个,指针一直++直到有字符出现去除尾部字符转:可能最后有多个空格,也可能一个空格也没有源码...原创 2018-07-06 13:42:30 · 178 阅读 · 0 评论 -
《剑指offer》面试题3:题目二
不修改数组的条件下,找出数组中重复的数字;其中数组长度为n+1,数组值的范围1~n;思路:利用二分的思想,将数组值1~n分割为1~middle的n1,middle+1~n的n2; 从头开始遍历一遍数组,统计在1~middle范围内数组中值的个数count,如果count>middle,那么重复的数字就在该数组中(n1),否者在n2;直到end = start,找到重复的。时间复杂度为O(nl...原创 2018-07-13 09:10:04 · 528 阅读 · 2 评论 -
《剑指offer》面试题9:两个队列实现一个栈
问题描述:用两个队列实现一个栈。思路: push:如果两个队列都为空,那么默认选择一个作为插入元素(开始的时候);如果队列有一个不为空,那么就选择不为空的作为push队列; pop:判断两个队列是否都为空,如果都为空,返回栈空;假设queue1不为空,那么先将queue1的n-1个元素删除并插入到queue2中,第n个元素便是所要出栈的元素。代码如下: 1.类的定义:class ...原创 2018-07-14 11:44:07 · 125 阅读 · 0 评论