
数据结构
越丘
这个作者很懒,什么都没留下…
展开
-
重建二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 用的是递归,每次递归构建左右子树,然后返回根节点,用哈希表先把里面的节点存起来方便后面查找,由于Java传对象都是传的地址,所以不会耗费很多空间和时间,...原创 2019-03-11 16:45:21 · 155 阅读 · 0 评论 -
二叉搜索树的后序遍历
题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 二叉搜索树定义:二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的...原创 2019-03-11 18:22:01 · 126 阅读 · 0 评论 -
树的子结构
题目:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 解题思路如下:每次找到一个节点就判断一次是不是子结构,如果不是那么再依次判断这个节点的左子树和右子树 public class Solution { public boolean HasSubtree(TreeNode root1,TreeNode root2) { boo...原创 2019-03-11 20:00:56 · 108 阅读 · 0 评论 -
从上往下打印二叉树
题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印。 import java.util.*; public class Solution { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList<Integer> resultList=new A...原创 2019-03-11 21:01:30 · 116 阅读 · 0 评论 -
反转链表
输入一个链表,反转链表后,输出新链表的表头。 用的循环,但是我估计栈和数组也是可以的 /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class Solution { publi...原创 2019-03-22 11:02:11 · 123 阅读 · 0 评论