
校招准备
文章平均质量分 66
Crystal_ting
个人博客 limengting.site
展开
-
《剑指offer》树的子结构
题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)/** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val原创 2018-05-02 13:57:35 · 244 阅读 · 0 评论 -
《剑指offer》二叉搜索树的后序遍历序列
题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 public class Solution { public boolean VerifySquenceOfBST(int [] sequence) { if (sequence == null || sequence...原创 2018-05-02 14:42:38 · 245 阅读 · 0 评论 -
[4]《剑指offer》二叉树中和为某一值的路径
题目描述 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 import java.util.ArrayList; /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = ...原创 2018-05-02 15:28:57 · 230 阅读 · 0 评论 -
[4]《剑指offer》二叉搜索树的第k个节点
题目描述 给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。 /* public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(...原创 2018-05-04 22:48:59 · 245 阅读 · 0 评论 -
《剑指offer》复杂链表的复制
题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 方法一:使用HashMap,空间复杂度O(n) /* public class RandomListNode { int label; Random...原创 2018-04-27 16:11:22 · 234 阅读 · 0 评论 -
《剑指offer》两个链表的第一个公共节点
题目描述 输入两个链表,找出它们的第一个公共结点。 根据提交结果来看,只需要考虑无环单链表: /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class Solution { ...原创 2018-04-27 21:07:26 · 184 阅读 · 0 评论 -
《剑指offer》链表中环的入口节点
题目描述 一个链表中包含环,请找出该链表的环的入口结点。 方法一:空间复杂度O(n) /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } */ import java.util.HashSet;...原创 2018-04-27 21:18:09 · 190 阅读 · 0 评论 -
《剑指offer》包含min函数的栈
题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 import java.util.Stack; public class Solution { Stack<Integer> data = new Stack<>(); Stack<Integer> min = new Stack<&原创 2018-04-27 21:46:19 · 170 阅读 · 0 评论 -
《剑指offer》二叉树的深度
题目描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 方法一:递归,时间复杂度O(logn) /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public...原创 2018-04-27 23:12:37 · 221 阅读 · 0 评论 -
《剑指offer》对称的二叉树
题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 /* public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { ...原创 2018-04-30 17:40:42 · 197 阅读 · 0 评论 -
《剑指offer》二叉树的镜像
题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 二叉树的镜像定义: 源二叉树: 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树: 8 / \ 10 6 ...原创 2018-04-30 13:38:06 · 207 阅读 · 0 评论 -
面试常见算法2:对树的操作
1、树的遍历:先序/中序/后序/层次遍历 package sword_to_offer_tree; import java.util.LinkedList; import java.util.Queue; import java.util.Stack; public class PreInPosLayerTraversal { public static class Node {...原创 2018-04-15 15:56:46 · 411 阅读 · 0 评论 -
面试常见算法1:排序算法
(1)冒泡排序: 算法描述:从头开始,两两交换,大的沉底,每轮确定一个最大的数,每轮逐渐缩小范围end- -,直到end = 1,即只有两个数 时间复杂度:O(n²) 空间复杂度:O(1) 稳定性:可以做到稳定的,遇到相等的后面的代替前面的沉底 package sword_to_offer_sort; import java.util.Scanner; public class ...原创 2018-04-10 19:23:51 · 761 阅读 · 0 评论 -
《剑指offer》合并两个排序的链表
题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 递归版: /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class So...原创 2018-04-21 23:36:01 · 252 阅读 · 0 评论 -
《剑指offer》链表中倒数第k个节点
题目描述 输入一个链表,输出该链表中倒数第k个结点。 方法一: 思路:倒第k即正第size - k + 1,遍历链表两次,时间复杂度O(n) /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ ...原创 2018-04-22 00:20:54 · 198 阅读 · 0 评论 -
面试常见算法3:对链表的操作
1,单/双链表的逆序 package sword_to_offer_linkedlist; public class ReverseList { public static class Node { public int value; public Node next; public Node(int data) { ...原创 2018-04-18 16:45:44 · 299 阅读 · 0 评论 -
面试常见算法4:栈和队列
1、数组/栈/队列间的转换: 1.1 固定数组实现栈结构: package sword_to_offer_stack_queue; public class UseArrayBuildArrayStack { // 固定数组实现栈 // 准备一个变量index,数组的大小设置为为栈的大小为initSize // 当要加一个数,index的含义为如果新来一个...原创 2018-04-18 16:48:27 · 453 阅读 · 1 评论 -
《剑指offer》把一棵二叉树打印成多行
题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 import java.util.ArrayList; import java.util.Queue; import java.util.LinkedList; /* public class TreeNode { int val = 0; TreeNode left = null; Tree...原创 2018-04-30 12:21:19 · 245 阅读 · 0 评论 -
《剑指offer》从上到下打印二叉树
题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } }...原创 2018-04-29 16:37:37 · 210 阅读 · 0 评论