03 2024 档案
【C++】返回每一层二叉树的平均值(层序遍历)
摘要://返回每一层二叉树的平均值(广度优先搜索,队列) 层序遍历 vector<double> averageOfLevels(TreeNode* root) { vector<double> ans; if (!root) return ans; queue<TreeNode*> q; q.push( 阅读全文
posted @ 2024-03-06 11:35 wshidaboss 阅读(7) 评论(0) 推荐(0) 编辑
【C++】判断一颗二叉树是否对称
摘要:四步法: (1)如果两个子树都为空指针,则它们相等或对称 (2)如果两个子树只有一个为空指针,则它们不相等或不对称 (3)如果两个子树根节点的值不相等,则它们不相等或不对称 (4)根据相等或对称要求,进行递归处理。 //四步法判断一颗二叉树是否对称 //主函数 bool isSymmetric(Tr 阅读全文
posted @ 2024-03-06 11:34 wshidaboss 阅读(71) 评论(0) 推荐(0) 编辑
【C++】翻转二叉树(递归、非递归)
摘要://使用递归翻转二叉树 TreeNode* reverseTree(TreeNode* root) { if (!root) return root; swap(root->left, root->right); reverseTree(root->left); reverseTree(root-> 阅读全文
posted @ 2024-03-06 11:30 wshidaboss 阅读(43) 评论(0) 推荐(0) 编辑
【C++】求二叉树的最大深度和最小深度
摘要://求一颗二叉树的最大深度 求高度:后序遍历 求深度:前序遍历 int maxDepth(TreeNode* root) { return root ? 1 + max(maxDepth(root->left), maxDepth(root->right)) : 0; } //求一颗二叉树的最小深度 阅读全文
posted @ 2024-03-06 11:30 wshidaboss 阅读(65) 评论(0) 推荐(0) 编辑
【C++】二叉树的前序、中序、后序遍历(递归、非递归)
摘要:#include <vector> #include <iostream> #include <string> using namespace std; //二叉树的定义 struct TreeNode { int val; TreeNode* left; TreeNode* right; Tree 阅读全文
posted @ 2024-03-06 11:28 wshidaboss 阅读(47) 评论(0) 推荐(0) 编辑