【每日算法】LeetCode 116 —— 填充每个节点的下一个右侧节点指针(二百零八)
题目内容给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node { int val; Node left; Node right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下 ...
Read more
【每日算法】LeetCode 115 —— 不同的子序列(二百零七)
题目内容给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数。 字符串的一个 子序列 是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,”ACE” 是 “ABCDE” 的一个子序列,而 “AEC” 不是) 题目数据保证答案符合 32 位 ...
Read more
【每日算法】LeetCode 114 —— 二叉树展开为链表(二百零六)
题目内容给你二叉树的根结点 root ,请你将它展开为一个单链表: 1、展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。2、展开后的单链表应该与二叉树 先序遍历 顺序相同。 进阶:你可以使用原地算法(O(1) 额外空间)展开 ...
Read more
【每日算法】LeetCode 113 —— 路径总和II(二百零五)
题目内容给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例示例 1: 输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targ ...
Read more
【每日算法】LeetCode 112 —— 路径总和(二百零四)
题目内容给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。 叶子节点 是指没有子节点的节点。 示例示例 1: 输入:root = [5,4,8,11,null,13,4 ...
Read more
【每日算法】LeetCode 111 —— 二叉树最小深度(二百零三)
题目内容给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 示例示例 1: 输入:root = [3,9,20,null,null,15,7]输出:2 示例 2: 输入:root = [2,null,3,null,4,n ...
Read more
【每日算法】LeetCode 110 —— 平衡二叉树(二百零二)
题目内容给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 示例示例 1: 输入:root = [3,9,20,null,null,15,7]输出:true 示例 2: 输入:root = [1,2, ...
Read more
【每日算法】LeetCode 109 —— 有序链表转换二叉搜索树(二百零一)
题目内容给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例给定的有序链表: [-10, -3, 0, 5, 9], 一个可能的答案是:[0, -3, 9, -10, null, 5 ...
Read more
【每日算法】LeetCode 108 —— 将有序数组转换为二叉搜索树(二百)
题目内容给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 示例示例 1: 输入:nums = [-10,-3,0,5,9]输出:[0,-3,9,-10,n ...
Read more
【每日算法】LeetCode 107 —— 二叉树的层次遍历II(一百九十九)
题目内容给定一个二叉树,返回其节点值自底向上的层序遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 示例 给定二叉树 [3,9,20,null,null,15,7] 返回其自底向上的层序遍历为: [ [15,7], [9,20], [3]] 题解本题可以通过将lc102中的答 ...
Read more