leetcode二叉树专题
水凝霜艾米
这个作者很懒,什么都没留下…
展开
-
红黑树的插入过程(手动画图)
手动画的红黑树的插入过程原创 2020-04-29 15:53:12 · 310 阅读 · 0 评论 -
LeetCode 173.二叉搜索树迭代器
注意:next() 和 hasNext() 操作的时间复杂度是 O(1),并使用 O(h) 内存,其中 h 是树的高度 详细思路见注释 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * ...原创 2020-04-22 21:37:07 · 82 阅读 · 0 评论 -
LeetCode 105.前序遍历和中序遍历构造二叉树 C++
前序:中左右 中序:左中右 使用unordermap,可以提高效率 具体解释见注释 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x),...原创 2020-04-20 21:38:58 · 180 阅读 · 0 评论 -
LeetCode 102.二叉树的层次遍历 C++
需要使用队列 每出队一个元素,要入队该节点的左右孩子 具体思路见注释 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(N...原创 2020-04-20 19:33:20 · 105 阅读 · 0 评论 -
LeetCode 297. 二叉树的序列化与反序列化 C++
详细思路在注释里 1. 通过序列化,可以只使用先序遍历就可以唯一确定一颗二叉树。 2. 序列化时:空节点用"#,"表示,非空节点用其节点的val值加逗号表示。 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *r...原创 2020-04-18 21:44:52 · 197 阅读 · 0 评论 -
LeetCode 98. 验证二叉搜索树 C++
LeetCode 98. 验证二叉搜索树 C++ 思路: 自顶向下遍历:每一个节点有一个对应的区间 class Solution { public: bool isValidBST(TreeNode* root) { return dfs(root, INT_MIN, INT_MAX); } bool dfs(TreeNode* root, long lo...原创 2020-04-17 22:23:49 · 203 阅读 · 0 评论 -
LeetCode101.对称二叉树 C++
LeetCode101.对称二叉树 C++ 实现方法: 1.递归 2.迭代 详细思路在代码注释中 class Solution { public: /* // 递归写法思路: // 1.两个根节点的值要相等 // 2.左边的左子树和右边的右子树对称 // 3.左边的右子树和右边的左子树对称 bool isSymmetric(TreeNode* roo...原创 2020-04-17 22:16:44 · 141 阅读 · 0 评论