
二叉树
h799710
这个作者很懒,什么都没留下…
展开
-
二叉树前序遍历三种方式(c++ 实现)
一.递归递归很简单,只要在调用子节点前对当前节点进行操作即可struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode() : val(0), left(nullptr), right(nullptr) {} TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} TreeNode(int x, TreeNode *l原创 2020-10-27 15:58:10 · 4510 阅读 · 0 评论 -
Morris 中序遍历(c++实现)
一.中序遍历二叉树中序遍历就是将先遍历左子树,再遍历自身,最后再遍历右子树,形成左根右的形式,用递归的方式非常简单如下:void dfs(root){ if(!root) return; dfs(root->left); // 先递归左子树 cout<<root->val<<","; //再对根节点操作 dfs(root->right); // 最后递归右子树}二.Morris 思路:1.对于一个根节点root ,找到其左子树最后一个中序遍历原创 2020-09-24 17:17:12 · 860 阅读 · 0 评论 -
二叉树结构之求最大、最小深度
二叉树结构之求最大、最小深度1.最大深度思路:利用【深度优先遍历】获取当前点的【左孩子树】的最大深度,【右孩子树】的最大深度,取两个最大深度的最大值,然后加上本身节点所占用的一个深度,就是以该节点为根的最大深度,递归返回的到根节点时,就是这个二叉树的最大深度。下面是C++的实现代码:int maxDepth(TreeNode* root) { if (!root) return 0; return max(maxDepth(root->left), maxDepth(root-&g原创 2020-05-13 18:33:10 · 521 阅读 · 0 评论