Leetcode662
1.问题描述
2.解决方案
整体思路:
1.这个给每个节点一个pos值,进而封装一层的思想非常优秀
2.既能使用到pos值,又不用使用静态数组存储节点
3.即为左右指针存储树,还能使用到静态数组的特性
解法一:用beginPos维护pos进而求宽度
1.思路就是每一层的第一个节点为beginPos,后面的节点都减去beginPos,最后求最大值
2.但是leetcode有一个样例没过
class AnnotatedNode {
TreeNode node;
int pos;
AnnotatedNode(TreeNode n,int p) {
node = n;
pos = p;
}
}
public class lc662 {
public int widthOfBinaryTree(TreeNode root) {
Queue<AnnotatedNode> queue = new LinkedList<>();
queue.add(new AnnotatedNode(root,0));