摘要:
题目描述 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 解题思路 这题我们的思路还是递归去构造我们的二叉树,首先题目给出二叉树的中序遍历和后序遍历,由后序遍历我们可以确 阅读全文
摘要:
题目描述 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。 叶子节点 是指没有子节点的节点。 解题思路 我们这题采 阅读全文
摘要:
题目描述 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 解题思路 这道题用层次遍历的方式来说是比较简单的,用递归的话如果我们看别人的精简代码很难看出其中隐藏的细节,这里递归遍历其实我们用到了回溯的思想,我们直接采用前序遍历的方式(其实 阅读全文
摘要:
题目描述 给定二叉树的根节点 root ,返回所有左叶子之和。 解题思路 这里我才用的是前序遍历,我们在遍历的时候因为是要手机左叶子节点,所以我们就不能等到遍历当前节点的时候再去做判断,应该遍历到一个节点的时候就对其下一个节点的左右子树进行判断,这样才能确保我们得到的是我们的左叶子节点 代码实例 c 阅读全文
摘要:
题目描述 给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的节点。 解题思路 这道题我们采用二叉树里的前序遍历方式,我们要遍历所有到叶子节点的路径,我们采用复用的思想,就是让这里的几个数据结构我们可以重复使用,但是重复使用也就带来数据不 阅读全文
摘要:
题目描述 给你一个二叉树的根节点 root , 检查它是否轴对称。 解题思路 这里我们相当于是比较根节点左右两颗子树,我们依次向左右子树的左右两个方向进行遍历,我们比较左子树的左孩子和右子树的右孩子,左子树的右孩子和右子树的左孩子,这里如果不好理解可以看下面这个图片,如果两个子节点不为空且值相等我们 阅读全文
摘要:
题目描述 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 解题思路 这里我们层次遍历我们需要使用到队列这个数据结构,我们依次从根节点开始遍历,我们需要使用一个变量来记录此时我们队列中元素的数量,因为这样我们才知道这一层我们需要从队列中弹出多少个元素 阅读全文
摘要:
题目描述 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 解题思路 这里我们可以自己设计个队列,这个队列里面主体数据结构我们使用Java里的Deque这个双向 阅读全文
摘要:
题目描述 给你一个字符串数组 tokens ,表示一个根据逆波兰式表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 解题思路 我们依次遍历数据,如果遇到数字我们就直接入栈,如果遇到运算符,我们就取出栈顶的元素两个,然后进行运算,这里要注意-和/这两个运算符,取栈顶元素的位置 阅读全文
摘要:
题目描述 给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 解题思路 这里我们还是使用栈这个数据结构,我们还是遍历当前字符串,如果栈此时为空我们则直 阅读全文