美文网首页
使用Python的一种神奇的BFS写法

使用Python的一种神奇的BFS写法

作者: klory | 来源:发表于2018-05-10 00:17 被阅读33次

    Leetcode 662

    class Solution:
        def widthOfBinaryTree(self, root):
            """
            :type root: TreeNode
            :rtype: int
            """
            q = [(root, 0, 0)] # (node, depth, position)
            cur_depth, left, ans = 0, 0, 0
            for (node, depth, pos) in q:
                if node:
                    q.append((node.left, depth+1, 2*pos))
                    q.append((node.right, depth+1, 2*pos+1))
                    if depth != cur_depth:
                        cur_depth = depth
                        left = pos
                    ans = max(pos-left+1, ans)
            return ans
    

    相关文章

      网友评论

          本文标题:使用Python的一种神奇的BFS写法

          本文链接:https://www.haomeiwen.com/subject/oayarftx.html