返回

层次遍历妙法,驾驭二叉树格局

闲谈

层次遍历,计算机科学中的一门绝技,旨在逐层探索二叉树结构,从最底层叶节点开始,逐层向上,将节点值依次收集。倘若您是一名编程爱好者,渴望提升算法技能,那么掌握层序遍历技巧必不可少。二叉树层序遍历,将带您揭开算法之美。

class Solution:
    def levelOrderBottom(self, root: TreeNode) -> List[List[int]]:
        if not root:
            return []

        queue, res = [root], []

        while queue:
            tmp = []
            for _ in range(len(queue)):
                node = queue.pop(0)
                tmp.append(node.val)
                if node.left:
                    queue.append(node.left)
                if node.right:
                    queue.append(node.right)
            res.append(tmp)

        return res[::-1]

二叉树镜像对称,即两棵树节点的值对称分布。换言之,二叉树沿中轴线对称。检验镜像对称性是二叉树算法的经典问题之一。

def isSymmetric(root: TreeNode) -> bool:
    def check(left: TreeNode, right: TreeNode):
        if not left and not right:
            return True
        elif not left or not right:
            return False
        elif left.val != right.val:
            return False
        else:
            return check(left.left, right.right) and check(left.right, right.left)

    if not root:
        return True
    else:
        return check(root.left, root.right)

二叉树,计算机科学中一道迷人风景线。掌握二叉树算法,犹如登上一座知识高峰,俯瞰算法世界的壮丽。层次遍历与镜像对称性,皆是计算机科学的瑰宝,值得每一位编程爱好者细细探究。