主页 > 开源代码  > 

代码随想录day14

代码随想录day14

226.翻转二叉树

void reverseTree(TreeNode* node){ if(node == nullptr) return; if(node->left) reverseTree(node->left); if(node->right) reverseTree(node->right); TreeNode* tmp = node->left; node->left = node->right; node->right = tmp; } TreeNode* invertTree(TreeNode* root) { reverseTree(root); return root; }

101.对称二叉树

bool compare(TreeNode* left, TreeNode* right){ if(!left && !right){ return true; }else if(!left && right){ return false; }else if(left && !right){ return false; }else if(left->val != right->val){ return false; } bool com1 = compare(left->left, right->right); bool com2 = compare(left->right, right->left); bool result = com1 && com2; return result; } bool isSymmetric(TreeNode* root) { if(root == nullptr) return true; return compare(root->left, root->right); }

559.N叉树的最大深度

int getDepth(Node* node){ if(node == nullptr) return 0; int max = 0; for(std::vector<Node*>::iterator it = node->children.begin(); it != node->children.end(); ++it){ int depth = getDepth(*it); if(depth > max){ max = depth; } } int depth = 1 + max; return depth; } int maxDepth(Node* root) { return getDepth(root); }

111.二叉树的最小深度

int digui(TreeNode* node){ if(node == nullptr) return 0; int left = digui(node->left); int right = digui(node->right); if(!left){ return 1 + right; } if(!right){ return 1 + left; } int depth = 1 + min(left, right); return depth; } int minDepth(TreeNode* root) { return digui(root); }

标签:

代码随想录day14由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“代码随想录day14