摘要: 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1: 输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4 / \ 阅读全文
posted @ 2021-06-09 21:55 zhustarstar 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 1.二叉树是否为空? 2.二叉树当前节点时候为空 3.插入当前节点,需要判断是否为空 阅读全文
posted @ 2021-06-09 20:10 zhustarstar 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \1 3 6 9输出: 4 / \ 7 2 / \ / \9 6 3 1 解法一:前序遍历递归 public TreeNode invertTree(TreeNode root) { invert(root); return root 阅读全文
posted @ 2021-06-09 17:58 zhustarstar 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1: 输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2: 输入:n = 1输出:["()"] 解法一:递归 教会我程序是一步 阅读全文
posted @ 2021-06-09 16:32 zhustarstar 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2: 输入: 3输出: 3解释: 有三种方 阅读全文
posted @ 2021-06-09 14:35 zhustarstar 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 递归模板 1.递归终结条件 2.处理当前逻辑 3.下探到下一层 4.清理当前层的全局变量 public void recur(int level,int param) { //terminator递归终止条件 if(level>MAX_LEVEL) { //process result return 阅读全文
posted @ 2021-06-09 10:41 zhustarstar 阅读(195) 评论(0) 推荐(0) 编辑