【Leetcode】508.出现次数最多的子树元素和 508.出现次数最多的子树元素和题目给你一个二叉树的根结点,请你找出出现次数最多的子树元素和。一个结点的「子树元素和」定义为以该结点为根的二叉树上所有结点的元素之和(包括结点本身)。 你需要返回出现次数最多的子树元素和。如果有多个元素出现的次数相同,返回所有出现次数最多的子树元素和(不限顺序)。 示例 1: 输入: 5 / \ 2 -3 返回 [2, -3, 4],所有的值均 2021-02-19 算法 树
【Leetcode】450.删除二叉搜索树中的节点 450.删除二叉搜索树中的节点题目给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。 示例: root = [5,3,6,2,4,null,7] key = 3 5 / \ 3 6 / \ \ 2 4 7 给定需要删除的节点值是 3,所以我 2021-02-19 算法 树
【Leetcode】257.二叉树的所有路径 257.二叉树的所有路径题目给定一个二叉树,返回所有从根节点到叶子节点的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 输入: 1 / \ 2 3 \ 5 输出: ["1->2->5", "1->3"] 方法(深度优先搜索)对以root为根节点的树进行深度优先遍历,搜索从root到叶节点的路 2021-02-19 算法 树
【Leetcode】230.二叉搜索树中第K小的元素 230. 二叉搜索树中第K小的元素题目给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。 说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。 示例 1: 输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2 输出: 1 示例 2: 输入: root = [5,3 2021-02-19 算法 树
【Leetcode】117.填充每个节点的下一个右侧节点指针 II 117 填充每个节点的下一个右侧节点指针 II题目:大体和题目116相同,只是给定的二叉树并不受限制 思路:递归法 如果一个节点root既有左子节点又有右子节点,则左子节点的next指向右子节点,右子节点的next指向NextNoNullChild 如果一个节点只有左子节点,则左子节点的next指向其NextNoNullChild 如果一个节点只有右子节点,则右子节点的next指向其Next 2021-02-19 算法 树
【Leetcode】116.填充每个节点的下一个右侧节点指针 116 填充每个节点的下一个右侧节点指针题目:给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next;} 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。 初始状 2021-02-19 算法 树
【Leetcode】114.二叉树展开为链表 114 二叉树展开为链表题目:给定一个二叉树,原地将它展开为一个单链表。 例如,给定二叉树 1 / \ 2 5 / \ \ 3 4 6 将其展开为: 1 \ 2 \ 3 \ 4 \ 5 \ 6 思路:采用递归的思路来解决问题。递归的特点就在于,无需 2021-02-19 算法 树
【Leetcode】112.路径总和 112 路径总和题目:给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 思路:递归遍历整棵树,依次对子节点递归调用hasPathSum函数,调用时参数sum值更新为sum减去当前节点的值。如果当前节点是叶节点,并且sum减到了0。则说明找到了这一路径。 代码: 12345678910111213141516class Solution 2021-02-19 算法 树
【Leetcode】109.有序链表转换二叉搜索树 109.有序链表转换二叉搜索树题目给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定的有序链表: [-10, -3, 0, 5, 9], 一个可能的答案是:[0, -3, 9, -10, null, 5], 它可以表示下面这个高度平衡二叉搜索树: 0 2021-02-19 算法 树
【Leetcode】108.将有序数组转换为二叉搜索树 108. 将有序数组转换为二叉搜索树题目将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 2021-02-19 算法 树