zoukankan      html  css  js  c++  java
  • LeetCode872. Leaf-Similar Trees

    自己的代码:

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution:
        
         def allNode(self,root):
            listNode=[]
            if Not root:
                return ListNode
            checkResult=checkNode(root)
            if checkResult is not None:
                listNode.append(checkResult)
            if not root.left:
                self.allNode(root.left) 
            if not root.left:
                self.allNode(root.right)
            
            
            
        def checkNode(self,root):
            if not root.left and not root.right :
                return root.val
            return None
        
        def leafSimilar(self, root1, root2):
            """
            :type root1: TreeNode
            :type root2: TreeNode
            :rtype: bool
            """
            node1=allNode(root1)
            node2=allNode(root2)
            if node1==node2:
                return True
            return False

    主要问题:思维有些混乱,在使用递归的时候,先把针对单个结点的返回想好,再使用递归。

    优秀代码:

    https://blog.csdn.net/fuxuemingzhu/article/details/81748617

    先序遍历:

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution:
        def leafSimilar(self, root1, root2):
            """
            :type root1: TreeNode
            :type root2: TreeNode
            :rtype: bool
            """
            return self.getLeafs(root1) == self.getLeafs(root2)
        
        def getLeafs(self, root):
            res = []
            if not root:
                return res
            if not root.left and not root.right:
                return [root.val]
            res.extend(self.getLeafs(root.left))
            res.extend(self.getLeafs(root.right))
            return res

    修改之后的代码:

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution:
        
         def leafSimilar(self, root1, root2):
            node1=self.allNode(root1)
            node2=self.allNode(root2)
            if node1==node2:
                return True
            return False
        
         def allNode(self,root):
            listNode=[]
            if not root:
                return ListNode
            if not root.left and not root.right :
                return [root.val]
            listNode.extend(self.allNode(root.left))
            listNode.extend(self.allNode(root.right))
            return listNode
        
  • 相关阅读:
    给树莓派安装中文环境
    windows中让secureCRT正确显示中文(ssh)
    C# net winform wpf 发送post数据和xml到网页
    WebDav协议基于HTTP 1
    WCF WEB HTTP请求 WCF REST FUL
    WPF黑色背景下常用控件样式
    解决WCF大数据量传输 ,System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的连接
    WPF 漏斗控件 等待沙漏效果
    WPF 资源管理器 WPF Explorer
    WPF MVVM 关闭窗体
  • 原文地址:https://www.cnblogs.com/captain-dl/p/10154334.html
Copyright © 2011-2022 走看看