- 博客(7)
- 资源 (14)
- 收藏
- 关注
原创 剑指offer:找出数组中的重复的数字Java版
题目: 在一个长度为n的数组里的所有数字都在 0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如:如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出的是重复的数字2或者3。先说一下简单的做法:思路: 将数组排好序,再遍历数组,找到数组中的重复数字即可。使用快排...
2019-07-25 14:47:45 576
原创 分别用递归和非递归的方式实现二叉树先序、中序和后序遍历
分析:先序:访问根节点、先序遍历左子树、先序遍历右子树中序:中序遍历左子树,访问根节点,中序遍历右子树后序:后序遍历左子树,后序遍历右子树,访问根节点因此,递归实现就很简单public class test3 { public class Node{ private int value; private Node leftNode; ...
2019-07-22 10:49:46 843
原创 在单链表和双链表中删除倒数第K个节点
题目: 分别实现两个函数,一个可以删除单链表中倒数第K个节点,另一个可以删除双链表中倒数第K个节点思路: 如果链表为空或者K值小于1的情况下,直接返回链表。否则让链表从头往后走,没走一步,K值减一,有一下几种情况链表为1-2-3-4-5,K值为6很显然,链表不存在倒数第六个节点链表为1-2-3-4-5,K值为5倒数第5个节点为1节点...
2019-07-22 09:54:09 555
原创 用一个栈实现另外一个栈的排序
题目:一个栈中的类型为整形,现在想将该栈从顶到底按从小到大的顺序排序,只允许申请一个栈除此之外,可以申请新的变量,但是不能申请额外的数据结构,如何完成排序。思路: 设计一个cur变量,存放stack栈弹出的当前元素,和辅助栈help的栈顶元素进行比较,若大于辅助栈栈顶元素,则将辅助栈中元素一一弹出,压入stack栈中,若小于辅助栈栈顶元素,则将cur压...
2019-07-22 08:48:55 275 1
原创 打印两个有序链表的公共部分
题目: 给定两个有序链表的头指针head1和head2,打印两个链表的公共部分思路: 因为是有序链表,只需要从俩个链表的头开始判断 1、当head1小于head2的时候,head1向后移动 2、当head1大于head2的时候,head2向后移动 3、当head等于head2的时候,打印,head1和head2都向后移动...
2019-07-21 18:39:23 374
原创 由两个栈组成的队列
题目: 编写一个类,用两个栈实现队列,支持队列的基本操作(add,poll,peek)思路:* 栈的特点是先进后出,队列的特点是先进先出,因此我们只需要* 定义两个栈,其中一个作为压入栈stackPush,另一个作为弹出栈stackPop* 将数据压入stackPush中,然后全部弹出放入stackPop中,* 比如,将12345放入stackPush...
2019-07-21 18:19:54 161
原创 输入一个整数和一棵二元树
输入一个整数和一棵二元树。 从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。 打印出和与输入整数相等的所有路径。 例如输入整数22 和如下二元树 10 / \ 5 12 / \ 4 7则打印出两条路径:10, 12 和10, 5, 7。使用递归+回溯的方法思路: (1)若根节...
2019-07-19 14:49:59 2777 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人