剑指offer
一只小奶狗
SCU Master
展开
-
【剑指offer】复杂链表的复制
【题目描述】输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)【简单思路】1、从旧链表中创建新链表,每个节点复制到其后面,暂不处理随机的节点;2、创建新链表的随即节点的连接关系;3、拆分新链表。...原创 2020-03-10 11:23:43 · 65 阅读 · 0 评论 -
【二叉树中和为某一值的路径】
【题目描述】输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)【简单思路】使用递归的方法list.remove(list.size()-1);使用了list这个列表来存储当前走过的节点,所以为了寻找新的路径,递归完返回上一次的时候要删除掉,这...原创 2020-03-10 09:52:06 · 72 阅读 · 0 评论 -
【剑指offer】二叉搜索树的后序遍历
【题目描述】输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。【简单思路】二叉搜索树:1.左孩子<根<右孩子;2.BST的左孩子和右孩子都是BST来源:牛客网发现对于每一棵子树,它的根结点总是对应该子树的后序序列的最后一个数 那么,只需要不断地确定出左子树区间和右子树区间,并且判断:左子...原创 2020-03-09 17:58:14 · 72 阅读 · 0 评论 -
【剑指offer】从上到下打印二叉树
【题目描述】从上往下打印出二叉树的每个节点,同层节点从左至右打印。【简单思路】借助队列,画图看,先进先出。注意包位置。public class Solution { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList<Integer> re = new...原创 2020-03-09 16:53:11 · 69 阅读 · 0 评论 -
【剑指offer】栈的压入和弹出序列
【题目描述】输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)【简单思路】肯定要用栈,出栈值等于栈顶值,就出栈,最后判定栈是不是为空了,为空就全...原创 2020-03-09 16:16:35 · 77 阅读 · 0 评论 -
【剑指offer】包含min函数的栈
【题目描述】定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。注意:保证测试中不会当栈为空的时候,对栈调用pop()或者min()或者top()方法【简单思路】我还得思考一下,要注意pop的时候最小值的处理。import java.util.Stack;public class Solution { private stati...原创 2020-03-09 15:56:15 · 64 阅读 · 0 评论 -
【剑指offer】二叉树镜像
【题目】操作给定的二叉树,将其变换为源二叉树的镜像。简单思路:递归调用。/** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */public class S...原创 2020-03-09 11:20:01 · 88 阅读 · 0 评论 -
【剑指offer】树的子结构
【题目】输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)Note:1、先写一个方法,传入两棵根节点值相同的树,判断tree1是否和tree2结构一样2、再写一个方法来遍历大树,找到一个和小树根节点值相等的节点,以该节点和小树根节点的值为参数调用上面的方法即可在这里插入代码片...原创 2020-03-09 11:10:58 · 63 阅读 · 0 评论