美文网首页Leetcode刷题笔记
第十八天 Merge Two Binary Trees

第十八天 Merge Two Binary Trees

作者: 业余马拉松选手 | 来源:发表于2018-09-07 00:00 被阅读2次

    哈哈,第十八天了,又是二叉树,还是继续递归

    https://leetcode-cn.com/problems/merge-two-binary-trees/description/

    这道题,其实有个隐藏的“条件”是,新得到的树可以是在之前的树上进行处理的。

    那么当同时遍历的时候,有任意一个节点不存在的时候,就返回另外一个,而两个都存在的时候,那么就需要把两个的值相加,接着就是依次递归完成这个过程即可。

    这里有个地方需要“绕”出来,就是这里是以t1这棵树为“返回”结果的,那么就在递归的时候,将t1的左右孩子依次递归调用即可,当然如果你用t2其实也是完全没以影响的

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

    当然,只要是用递归的话,几乎就一定可以用栈来解决这个问题的。

    最近状态确实不太好,就先完成为主吧

    已经快3周了,需要总结一下了

    相关文章

      网友评论

        本文标题:第十八天 Merge Two Binary Trees

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