CF1037D Valid BFS?题解(双端队列)
CF1037D Valid BFS?题面题意判断所给bfs序是否合法思路bfs序和层序遍历有一定的相似之处,所以首先很容易能想到对深度进行判断,如果当前节点的深度比之前出现过的深度都小,那这个bfs序必是不合法的但是深度判断不了子节点出现的先后顺序,所以考虑用deque存之前出现过的节点,每次从队尾插入新节点,并更新其父节点的度(用以判断其子节点是否全出现过),如果队首节点的子节点全都已经出现过,则从队首出队。如果出现非根节点的父节点不是队首节点,则说明子树顺序不合法。代码#inclu
原创
2020-08-15 16:14:59 ·
195 阅读 ·
0 评论