[Lc]面试题55_II平衡二叉树

题目 二叉树结构如下: //Definition for a binary tree node. struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; 题解 详细题解可参见#110题解 1. 递归法 时间复杂度: $O(n\log n)$ 空间复杂度: $O(n)$ class Solution {

[Lc]面试题55_I二叉树的深度

题目 二叉树结构如下: //Definition for a binary tree node. struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; 题解 详细题解可参见#104题解 1. 递归法 时间复杂度$O(N)$ 空间复杂度$O

[Lc]面试题54二叉搜索树的第k大节点

题目 二叉树结构如下: //Definition for a binary tree node. struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; 题解 **二叉搜索树的中序遍历是递增数组,那么二叉搜索树的中序遍历的倒序是递

[Lc]133克隆图

题目 图的定义如下: // Definition for a Node. class Node { public: int val; vector<Node*> neighbors; Node() { val = 0; neighbors = vector<Node*>(); } Node(int _val) { val = _val; neighbors = vector<Node*>(); } Node(int _val, vector<Node*> _neighbors) { val = _val; neighbors = _neighbors; } }; 题解 两个方法。DFS,BFS 1. DFS

[Lc]面试题53_II

题目 题解 1. 挨个查找法 时间复杂度$O(N)$ 空间复杂度$O(1)$ 就是挨个查找数组,找到与下标不一致的数即可,但不是最右的方法 2. 二分查找法 时间