![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指Offer
maomao_dreamhigh
这个作者很懒,什么都没留下…
展开
-
剑指offer 数组中出现次数超过一半的数字
**题目描述**数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。方法一:排序,如果有数字超过数组长度一般的数字的话,排序后一定是中间的那个数字。时间复杂度:O(nlogn)空间复杂度O(1)import java.ut...原创 2019-12-27 16:16:36 · 101 阅读 · 0 评论 -
剑指offer 二叉搜索树与双向链表
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。这道题仔细看,就会发现是中序遍历+改变指针指向。但我就是那么菜,明明知道了总体思路还是不会编,最后看了讨论区中的高票回答,豁然开朗。中序遍历分为递归和非递归。非递归遍历时,由于需要更改指针,所以需要增加一个节点记录上一次遍历到的节点。递归遍历时,就是先递归求出左子树的结果...原创 2019-12-21 09:09:06 · 72 阅读 · 0 评论 -
二叉树中的路径和
**剑指offer 二叉树中和为某一值的路径**题目描述输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)提到树,首先就应该想起用递归操作。这道题的路径要求是从root到leaf,根据题目,递归的终止条件就是node.left ==...原创 2019-12-18 15:43:04 · 399 阅读 · 0 评论 -
剑指offer-从尾到头打印链表
简单思路:再建一个ArrayList,边读链表边存储就好了,然后倒叙就是结果(更无耻一点就是直接用ArrayList的一个方法add(int index, E element) ,这样直接就是结果了。)import java.util.ArrayList;public class Solution { public ArrayList<Integer> printList...原创 2019-11-23 10:40:24 · 81 阅读 · 0 评论