摘要:
有效的山脉数组 题目: 给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false。 让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组: A.length >= 3 在 0 < i < A.length - 1 条件下,存在 i 使得: A[0] < A[1] < 阅读全文
摘要:
从中序与后序遍历序列构造二叉树 题目: 根据一棵树的中序遍历与后序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 中序遍历 inorder = [9,3,15,20,7] 后序遍历 postorder = [9,15,7,20,3] 返回如下的二叉树: 解题思路:和从前序与中序 阅读全文
摘要:
从前序与中序遍历序列构造二叉树 题目: 根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: 解题思路:前序数组的第一个 阅读全文
摘要:
最大二叉树 题目: 给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下: 二叉树的根是数组中的最大元素。 左子树是通过数组中最大值左边部分构造出的最大二叉树。 右子树是通过数组中最大值右边部分构造出的最大二叉树。 通过给定的数组构建最大二叉树,并且输出这个树的根节点。 示例 : 输 阅读全文
摘要:
填充每个节点的下一个右侧节点指针 题目:给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其 阅读全文
摘要:
二叉树展开为链表 题目: 给定一个二叉树,原地将它展开为一个单链表。 例如,给定二叉树 将其展开为: 解题思路:运用前序遍历将节点添加进list中,然后遍历list改变每一个节点的左右节点 /** * Definition for a binary tree node. * public class 阅读全文
摘要:
翻转二叉树 题目: 翻转一棵二叉树。 示例: 输入: 输出: 解题思路:运用递归从上至下进行翻转 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * Tree 阅读全文
摘要:
Java判断字符串是否为数字 用Character.isDigit方法 public static boolean isNumeric(String str){ for (int i = str.length(); i >= 0; i--){ if (!Character.isDigit(str.c 阅读全文
摘要:
验证二叉搜索树 题目: 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例 1: 输入: 2 / 1 3 输出: true 示例 2: 输入 阅读全文
摘要:
岛屿的周长 题目: 给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域。 网格中的格子水平和垂直方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。 岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周 阅读全文