Programming Camp – Algorithm Training Camp – Day 15

1. Invert Binary Tree (Leetcode Number: 144)

BFS strategy is used to swap those nodes on the same level

class Solution:
    def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:
        
        if root is None:
            return root
        
        root.left, root.right = root.right, root.left
        
        # The position of following two lines could be swapped as we are using BFS strategy here
        self.invertTree(root.right)
        self.invertTree(root.left)
        
        
        return root

2. Symmetric Tree (Leetcode Number: 101)

class Solution:
    def isSymmetric(self, root: Optional[TreeNode]) -> bool:
        if root is None:
            return True
        
        return self.nodecompare(root.left, root.right)
        
    def nodecompare(self, left, right):
        # The following four lines filter out all the unequal symmetric nodes
        if left == None and right != None: return False
        elif left != None and right == None: return False
        elif left == None and right == None: return True
        elif left.val != right.val: return False
            
        outside = self.nodecompare(left.left, right.right)
        inside = self.nodecompare(left.right, right.left)
        ifsame = outside and inside
        return ifsame 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值