树
JustSleep
这个作者很懒,什么都没留下…
展开
-
LeetCode 94. Binary Tree Inorder Traversal
给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]注意问题:在leetcode上编写代码时,尽量不要定义静态数据,否则进行样例测试时,很有可能会把上个测试样例的输出同本次测试样例的进行混淆。public List < Integer > inorderTra...原创 2019-01-14 14:44:23 · 67 阅读 · 0 评论 -
LeetCode 257. Binary Tree Paths
给定一个二叉树,返回所有从根节点到叶子节点的路径。说明: 叶子节点是指没有子节点的节点。示例:输入: 1 / \2 3 \ 5输出: ["1->2->5", "1->3"]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3解题思路:递归解决,当我们遇到叶结点的时候,即没有左右子结点,那么...原创 2019-02-08 20:00:33 · 102 阅读 · 0 评论 -
LeetCode 236. Lowest Common Ancestor of a Binary Tree
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4] 示例 1:输入: root =...原创 2019-02-08 17:30:11 · 70 阅读 · 0 评论 -
LeetCode 235. Lowest Common Ancestor of a Binary Search Tree
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5] 示例 1:输入: ro...原创 2019-02-01 17:20:15 · 78 阅读 · 0 评论 -
LeetCode 129. Sum Root to Leaf Numbers
给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明: 叶子节点是指没有子节点的节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 25解释:从根到叶子节点路径 1->2 ...原创 2019-01-15 14:15:04 · 88 阅读 · 0 评论 -
LeetCode 116-117. Populating Next Right Pointers in Each Node
给定一个二叉树struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。说明:...原创 2019-01-15 12:58:04 · 95 阅读 · 0 评论 -
LeetCode 113. Path Sum II
给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ ...原创 2019-01-15 10:24:41 · 77 阅读 · 0 评论 -
lLeetCode 112. Path Sum
给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 ...原创 2019-01-15 09:48:15 · 77 阅读 · 0 评论 -
LeetCode 110. Balanced Binary Tree
给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null...原创 2019-01-15 09:19:40 · 73 阅读 · 0 评论 -
LeetCode 108. Convert Sorted Array to Binary Search Tree
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -1...原创 2019-01-14 20:21:46 · 73 阅读 · 0 评论 -
LeetCode 107. Binary Tree Level Order Traversal II
给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [15,7], [9,20], [3]]解题思路:层次遍历,和前面的1...原创 2019-01-14 19:56:29 · 67 阅读 · 0 评论 -
LeetCode 105-106. Construct Binary Tree from Inorder and Postorder Traversal
根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树: 3 / \ 9 20 / \ 15 7解题思路:根据二叉树的遍历性质我们知道,后续遍历的最后一个节点就...原创 2019-01-14 19:27:49 · 93 阅读 · 0 评论 -
LeetCode 103. Binary Tree Zigzag Level Order Traversal
给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回锯齿形层次遍历如下:[ [3], [20,9], [15,7]]解题思路:根据层数判断...原创 2019-01-14 18:26:40 · 65 阅读 · 0 评论 -
LeetCode 102. Binary Tree Level Order Traversal
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]public static List<List<In...原创 2019-01-14 16:37:42 · 74 阅读 · 0 评论 -
LeetCode 101. Symmetric Tree
给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3public static boolean ...原创 2019-01-14 16:17:53 · 180 阅读 · 1 评论 -
LeetCode 98. Validate Binary Search Tree
给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4 / \ 3 ...原创 2019-01-14 16:00:02 · 62 阅读 · 0 评论 -
C++二叉树非递归统一形式
前序遍历:class Solution {public: vector<int> inorderTraversal(TreeNode* root) { vector<int> res; stack<TreeNode*> s; TreeNode *p = root; while (!s...原创 2019-08-31 13:08:58 · 99 阅读 · 0 评论