662. Maximum Width of Binary Tree
来源:互联网 发布:配眼镜测得数据的意思 编辑:程序博客网 时间:2024/06/05 18:59
Given a binary tree, write a function to get the maximum width of the
given tree. The width of a tree is the maximum width among all levels.
The binary tree has the same structure as a full binary tree, but some
nodes are null.The width of one level is defined as the length between the end-nodes
(the leftmost and right most non-null nodes in the level, where the
null nodes between the end-nodes are also counted into the length
calculation.
/** * 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: /*creat the id number of each Tree Node*/ int creatNumTree(struct TreeNode *root,struct TreeNode *numRoot){ struct TreeNode * newNode = NULL; if(root == NULL || numRoot == NULL){ return -1; } if(root->left){ newNode = (struct TreeNode *)malloc(sizeof(struct TreeNode )); newNode->val = numRoot->val * 2; newNode->left = NULL; newNode->right = NULL; numRoot->left = newNode; creatNumTree(root->left,newNode); } if(root->right){ newNode = (struct TreeNode *)malloc(sizeof(struct TreeNode )); newNode->val = numRoot->val * 2 + 1; newNode->left = NULL; newNode->right = NULL; numRoot->right = newNode; creatNumTree(root->right,newNode); } return 0; } int widthOfBinaryTree(TreeNode* root) { struct TreeNode * newRoot = NULL; queue< TreeNode* > qu; int maxWidth = 1; if(root == NULL){ return 0; } newRoot = (struct TreeNode *)malloc(sizeof(struct TreeNode )); newRoot->val = 1; newRoot->left = NULL; newRoot->right = NULL; creatNumTree(root,newRoot); /*level travel the tree,we will get the result*/ qu.push(newRoot); while(!qu.empty()){ int level = qu.size(); int left = 0; int right = 1; TreeNode * node = NULL; /*each node of this level*/ for(int i = 0;i<level;i++){ node = qu.front(); qu.pop(); if( i == 0){ left = node->val; } if( i == level-1){ right = node->val; } if(node->left){ qu.push(node->left); } if(node->right){ qu.push(node->right); } } maxWidth = (right-left+1)>maxWidth?(right-left+1):maxWidth; } return maxWidth; }};
阅读全文
0 0
- 662. Maximum Width of Binary Tree
- [LeetCode] 662. Maximum Width of Binary Tree
- 662. Maximum Width of Binary Tree
- 662. Maximum Width of Binary Tree
- 662. Maximum Width of Binary Tree
- Maximum Width of Binary Tree
- Maximum Width of Binary Tree
- leetcode Maximum Width of Binary Tree
- LeetCode Maximum Width of Binary Tree
- Maximum Width of Binary Tree 解题心得
- Maximum Width of Binary Tree问题及解法
- 662. Maximum Width of Binary Tree(二叉树层次遍历,二叉树标序号)
- leetcode 662. Maximum Width of Binary Tree 深度优先遍历DFS
- Maximum Depth of Binary Tree
- Maximum Depth of Binary Tree
- Maximum Depth of Binary Tree
- Maximum Depth of Binary Tree
- Maximum Depth of Binary Tree
- 下降子序列的个数等于最长上升子序列的长度
- 修饰符volatile和synchronized的区别联系
- bzoj 4995: [Usaco2017 Feb]Why Did the Cow Cross the Road
- 关于热更新的一些分享
- 51Nod-1137-矩阵乘法
- 662. Maximum Width of Binary Tree
- 在Linux里设置用户环境变量的方法
- Selenium TestNG Java环境搭建过程中所遇问题汇总
- 欢迎使用CSDN-markdown编辑器
- MyCat介绍与配置
- Java中栈的实现原理
- C#简单工厂模式
- 《Angular与primeNG结合》
- Spring boot入门实例 简易登录(精通Spring+4.x++企业应用开发实战 学习笔记二)