
剑指offer
小菜猫
今天也要开心呀
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
剑指offer---链表中环的入口节点
给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 解题思路: 对于这个题,我们可以选择遍历一遍整个链表,每次用一个list存起来,然后每存一个节点的时候都看一下list里面是否存在这个节点,如果存在,就为环。且因为我们是从头开始遍历,所以第一个后来遍历到并且存在于list里面的节点肯定是环的入口。 ...原创 2019-08-02 21:06:43 · 218 阅读 · 0 评论 -
剑指offer---字符流中第一个不重复的字符
题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。 输出描述: 如果当前字符流没有存在出现一次的字符,返回#字符。 解题思路:这个题目因为给出了两个函数, 一个insert----->Inser...原创 2019-08-03 11:38:23 · 221 阅读 · 0 评论 -
剑指offer---把数组排成最小的数
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 解题思路:可以手写一个比较函数按照题目意思对每一个数进行大小的比较,然后排序,排序完之后串起来就是最小的数啦 代码: public String PrintMinNu...原创 2019-07-25 21:08:28 · 194 阅读 · 0 评论 -
剑指offer---按之字型顺序打印二叉树
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 解题思路:这道题的重点在于怎么记录每一层的节点。所以我们可以选择两个栈,第一个栈打印当前节点,第二个栈记录下一层的节点。待本层节点全部打印完之后也就是第一个栈为空时,把记录下一层节点的栈赋给当前栈,记录下一层的栈清空。重新记录下一层。 ...原创 2019-07-26 21:15:31 · 223 阅读 · 0 评论 -
剑指offer---把二叉树打印成多行
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 解题思路:这个题跟它的前一题“把二叉树按照z字型逐层打印”做法基本一致。因为这个是从左到右打印,我们考虑使用队列,队列是先进先出。同样的也是两个队列,一个指向当前打印层,一个记录下一层的节点。当当前层打印完毕之后,把当前层指向下一层。下一层清空后来记录下一层的子节点 代码: ArrayList<...原创 2019-07-26 21:36:53 · 153 阅读 · 0 评论 -
剑指offer---二叉树中和为某一值的路径
题目描述 输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前) 解题思路:这个题目的想法可以是按照先左节点后右节点依次遍历整个树,到达叶子节点,是正确答案就添加,没有就跳过。然后回溯到上一层,再遍历。 代码: import java....原创 2019-08-01 16:23:56 · 150 阅读 · 0 评论