Leetcode 662. Maximum Width of Binary Tree | | Leetcode 662. Maximum Width of Binary Tree 文章作者:Tyan博客:noahsnail.com | CSDN | 简书 1. Description 2. Solution12345678910111213141516171819202122232425262728293031323334353637383940414243444546/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: int widthOfBinaryTree(TreeNode* root) { if(!root) { return 0; } vector<TreeNode*> level; root->val = 1; level.push_back(root); int maxWidth = 0; levelOrder(level, maxWidth); return maxWidth; }private: void levelOrder(vector<TreeNode*> level, int& maxWidth) { maxWidth = max(maxWidth, level[level.size() - 1]->val - level[0]->val + 1); vector<TreeNode*> nextLevel; for(int i = 0; i < level.size(); i++) { TreeNode* current = level[i]; if(current) { if(current->left) { current->left->val = current->val * 2 - 1; nextLevel.push_back(current->left); } if(current->right) { current->right->val = current->val * 2; nextLevel.push_back(current->right); } } } if(!nextLevel.empty()) { levelOrder(nextLevel, maxWidth); } }}; Reference https://leetcode.com/problems/maximum-width-of-binary-tree/description/ 如果有收获,可以请我喝杯咖啡! 赏 微信打赏 支付宝打赏