- 博客(11)
- 收藏
- 关注
原创 剑指offer-----二叉搜索树的后序遍历序列
1、题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。2、思路在后序遍历序列中,最后一个值是树的根节点,前面一部分结点是根的左子树;左子树后面,根节点前面是根的右子树。依次递归判断左子树和右子树是不是二叉搜索树。3、代码如下import java.util.Arrays;
2018-02-05 15:11:21 106
原创 剑指offer-----从上往下打印二叉树
1、题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。2、思路利用队列做结点容器,递归的打印出当前结点,当前结点的左节点以及当前结点的右结点。3.代码如下import java.util.ArrayList;import java.util.Queue;import java.util.LinkedList;/**public class T
2018-02-05 10:41:44 158
原创 剑指offer-----栈的压入、弹出序列
1、题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)2、思路如果下一个弹出的数字刚好是栈顶数字,那么直接弹出;如果下一个弹
2018-02-04 13:43:59 146
原创 剑指offer-----包含min函数的栈
1、题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。2、思路定义两个栈,分别是数据栈和辅助栈。(1)push函数:将新的值压入数据栈中;当辅助栈中没有元素或新的值小于辅助栈栈顶的元素值,即当前的最小值,则将新的值压入辅助栈中;否则,将辅助栈的栈顶元素重新压入辅助栈一次。 (2)pop函数:如果数据栈和辅助栈不为空,则分别将数据栈
2018-02-04 12:27:41 103
原创 剑指offer-----树的子结构
1、题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)2、思路(1)总算法可以分为两步:第一步:在树A中找到和树B的根节点的值一样的节点R;第二步:判断树A中以R为根节点的子树是不是包含和树B一样的结构。(2)需要注意的事项I: 与二叉树相关的代码有大量的指针操作,在每次使用指针的时候,我们都要问自己这个指
2018-02-02 18:49:16 130
原创 剑指offer-----合并两个排序的数组
1、题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。2、思路运用递归;如果第一个链表为空,则直接返回第二个链表;如果第二个链表为空,则直接返回第一个链表;如果第一个链表中的值小于第二个链表中的值,则将一个链表中的相应元素插入链表;如果第一个链表中的值大于第二个链表中的值,则将二个链表中的相应元素插入链表;代码如下:
2018-02-02 17:36:39 307
原创 剑指offer-----反转链表
1、题目描述输入一个链表,反转链表后,输出链表的所有元素。2、思路将未反转链表时当前结点的前一个节点作为反转链表后的当前结点的下一个节点。class ListNode {//一个java文件中,只能有一个public类,必须是main函数所在的类 int val; ListNode next = null; ListNode(int val) { ...
2018-02-02 15:57:41 159
原创 剑指offer-----链表中倒数第k个节点
1、题目描述输入一个链表,输出该链表中倒数第k个结点。2、思路 设置两个指针,一个指针先向前走k-1步,然后两个指针同时向前走,第一个指针走到结尾时,第二个指针正好走到倒数第k个节点。注意三种情况:(1)参数k<=0(2)输入的链表为空(3)链表中的节点数小于k代码如下:class ListNode { int val; ListNode...
2018-02-02 13:20:14 92
原创 剑指offer-----调整数组顺序使奇数位于偶数前面
1、题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。2、思路:设置两个指针,第一个指向数组的开头,第二个指向数组的结尾,第一个指针遇到偶数,第二个指针遇到奇数,将两个指针所指的元素交换,第一个指针始终小于第二个指针。代码如下:/**与快速排序算法的一趟相似*/public class Soluti...
2018-02-01 19:14:31 99
原创 剑指offer-----数值的整数次方
1、题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。2、思路需要考虑到的情况:(1)指数为负数的时候,可以先对指数求绝对值, 算出次方之后的结果再取倒数。(2)当底数是0,指数是负数的时候,可以将无效变量设置为true,并返回0。(3)当底数和指数都为0时,因为0的0次方在在数学上是没有意义的,直
2018-02-01 15:04:47 172
原创 剑指offer-----二进制中1的个数
1、题目描述:输入一个整数n,输出该数二进制表示中1的个数。2、思路设置一个变量flag,将flag与n做&运算,结果为1,则将个数加1。每循环一次,将flag左移一位,知道flag为0,停止循环,返回1的个数。代码如下:public class Solution { /** 正数和负数都可以 */ public int Number
2018-02-01 12:24:21 145
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人