算法刷题之二叉树
算法刷题之二叉树
本杰明玩编程
做过后端开发,Android Framework,App开发,Ai infra模型推理。
熟悉编程语言C++,Java/Kotlin,python。
现在主要做语音相关的研发工作,主要包括kws,asr,nlu,dm,tts和Ai infra大模型推理。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
145. 二叉树的后序遍历
题目:给定一个二叉树,返回它的 后序 遍历。题解思路:方法一:递归+dfs函数代码:class Solution {public: vector<int> postorderTraversal(TreeNode* root) { vector<int>res; dfs(root,res); return res; } void dfs(TreeNode *root,vector&l原创 2020-09-07 02:08:24 · 109 阅读 · 0 评论 -
94. 二叉树的中序遍历
题目:给定一个二叉树,返回它的中序遍历。方法一:递归函数代码一:class Solution { vector<int>res;public: vector<int> inorderTraversal(TreeNode* root) { dfs(root,res); return res; } void dfs(TreeNode* root,vector<int>&res)原创 2020-09-07 02:03:22 · 138 阅读 · 0 评论 -
144. 二叉树的前序遍历
题目:给定一个二叉树,返回它的 前序 遍历。方法一:递归函数代码:class Solution {public: vector<int> preorderTraversal(TreeNode* root) { vector<int>res; dfs(root,res); return res; } void dfs(TreeNode* root,vector<int> &res)原创 2020-09-07 01:39:04 · 135 阅读 · 0 评论 -
103. 二叉树的锯齿形层次遍历
题目:给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。方法一:双端队列+duque+层序遍历函数代码:class Solution {public: vector<vector<int>> zigzagLevelOrder(TreeNode* root) { vector<vector<int>>res; if(!root)原创 2020-09-07 00:57:46 · 121 阅读 · 0 评论 -
剑指 Offer 27. 二叉树的镜像
同力扣226 :翻转二叉树题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像。方法一:引入交换结点temp+递归推荐函数代码一:class Solution {public: TreeNode* mirrorTree(TreeNode* root) { if(!root) { return NULL; } TreeNode *temp=root->left; root-原创 2020-09-06 22:57:40 · 141 阅读 · 0 评论 -
102. 二叉树的层序遍历
题目:给你一个二叉树,请你返回其按 层序遍历 得到的节点值。(即逐层地,从左到右访问所有节点)。题解思路:方法一:BFS+引入二维数组+一维数组1.申请一个queue,利用先进先出的特性,把头结点放进去。如果左右结点不为空就放入队列中。2.一维数组用来存二叉树一层的元素的值,二维数组用来存一维数组。函数代码:class Solution {public: vector<vector<int>> levelOrder(TreeNode* root) {原创 2020-09-06 22:20:40 · 251 阅读 · 0 评论 -
101. 对称二叉树
方法一:普通解法:递归函数代码:class Solution {public: bool isSymmetric(TreeNode* root) { if(!root) { return true; } return help(root->left,root->right); } bool help(TreeNode *left,TreeNode *right) {原创 2020-09-06 21:44:42 · 113 阅读 · 0 评论 -
9.2三七笔试
力扣.104. 二叉树的最大深度题目:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。题解思路:方法一:队列+层序遍历函数代码:class Solution {public: int maxDepth(TreeNode* root) { if(!root) { return 0; } queue<TreeNod原创 2020-09-03 00:37:52 · 189 阅读 · 0 评论 -
剑指 Offer 55 - I. 二叉树的深度
题目:输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。例如:题解思路:方法:BFS+队列(queue)函数代码:class Solution {public: int maxDepth(TreeNode* root) { if(!root) { return 0; } queue<TreeNode *>q;原创 2020-08-14 16:50:22 · 134 阅读 · 0 评论
分享