美文网首页leetcode和算法----日更
leetcode 617 合并二叉树

leetcode 617 合并二叉树

作者: Arsenal4ever | 来源:发表于2020-02-03 21:46 被阅读0次

直接递归处理就好,没啥好想的。

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution(object):
    def mergeTrees(self, t1, t2):
        """
        :type t1: TreeNode
        :type t2: TreeNode
        :rtype: TreeNode
        """
        if not t1 and not t2:
            return None
        t1Val = t1.val if t1 else 0
        t2Val = t2.val if t2 else 0
        retNode = TreeNode(t1Val + t2Val)
        t1Left = t1.left if t1 else None
        t1Right = t1.right if t1 else None
        t2Left = t2.left if t2 else None
        t2Right = t2.right if t2 else None
        retNode.left = self.mergeTrees(t1Left, t2Left)
        retNode.right = self.mergeTrees(t1Right, t2Right)
        return retNode

看到了一个简洁到极致的写法:

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution(object):
    def mergeTrees(self, t1, t2):
        """
        :type t1: TreeNode
        :type t2: TreeNode
        :rtype: TreeNode
        """
        if t1 and t2:
            t1.val += t2.val
            t1.left = self.mergeTrees(t1.left, t2.left)
            t1.right = self.mergeTrees(t1.right, t2.right)
        return t1 or t2

相关文章

网友评论

    本文标题:leetcode 617 合并二叉树

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