[Lc]52N皇后II

题目 题解 这道题是51题的化简版,这里贴上51题的思路。唯一的区别就说不用统计所有的棋盘情况,而是遍历完一个分支就计数+1 这道题是很经典的一道

[Lc]51N皇后

题目 题解 这道题是很经典的一道题,思路就是dfs与回溯剪枝。这类回溯题的递归函数基本套路是这样的 判断是否终止并满足条件,满足了就加入res中 遍

[Lc]169多数元素

题目 题解 1. 排序取中法 时间复杂度$O(nlog{n})$,主要是排序耗费的 空间复杂度$O(1)$ class Solution {//三种方法,这是1.排序后取中间数 //

[Lc]面试题37序列化二叉树

题目 题解 二叉树结构如下: //Definition for a binary tree node. struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; 1. 先序遍历法 按先序遍历的顺序对数组进行序列化,遇到nullptr记位#

[Lc]297二叉树的序列化与反序列化

题目 题解 二叉树结构如下: //Definition for a binary tree node. struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; 1. 先序遍历法 按先序遍历的顺序对数组进行序列化,遇到nullptr记位#

[Lc]面试题36二叉搜索树与双向链表

题目 题解 节点定义如下: // Definition for a Node. class Node { public: int val; Node* left; Node* right; Node() {} Node(int _val) { val = _val; left = NULL; right = NULL; } Node(int _val, Node* _left, Node* _right) { val = _val; left = _left; right = _right; } }; 这道题要利用二叉搜索树

[Lc]426将二叉搜索树转化为排序的双向链表

题目 题解 节点定义如下: // Definition for a Node. class Node { public: int val; Node* left; Node* right; Node() {} Node(int _val) { val = _val; left = NULL; right = NULL; } Node(int _val, Node* _left, Node* _right) { val = _val; left = _left; right = _right; } }; 这道题要利用二叉搜索树