• Leetcode 100 相同的树


    100. 相同的树

    Difficulty: 简单

    给定两个二叉树,编写一个函数来检验它们是否相同。

    如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

    示例 1:

    输入:       1         1
              /        / 
             2   3     2   3
    
            [1,2,3],   [1,2,3]
    
    输出: true
    

    示例 2:

    输入:      1          1
              /           
             2             2
    
            [1,2],     [1,null,2]
    
    输出: false
    

    示例 3:

    输入:       1         1
              /        / 
             2   1     1   2
    
            [1,2,1],   [1,1,2]
    
    输出: false
    

    Solution

    Language: 全部题目

    用比较笨的办法,因为先序遍历加中序遍历或者后序遍历加中序遍历可以唯一确定一颗二叉树。

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, val=0, left=None, right=None):
    #         self.val = val
    #         self.left = left
    #         self.right = right
    class Solution:
        def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
            # 先序遍历和后序遍历可以唯一确定一颗二叉树
            return preOrderTraversal(p) == preOrderTraversal(q) and inOrderTraversal(p) == inOrderTraversal(q)
            
    def preOrderTraversal(tree):
        if not tree:
            # 注意为null的节点要向栈中添加""
            return [""]
        else:
            d = [""] if not tree.val else [tree.val]
            l = preOrderTraversal(tree.left)
            r = preOrderTraversal(tree.right)
            return d + l + r
    ​
    def inOrderTraversal(tree):
        if not tree:
            return [""]
        else:
            l = inOrderTraversal(tree.left)
            d = [""] if not tree.val else [tree.val]
            r = inOrderTraversal(tree.right)
            return l + d + r
    
  • 相关阅读:
    501. Find Mode in Binary Search Tree
    [leetcode]Evaluate Reverse Polish Notation
    [leetcode]LRU Cache
    [mock]12月27日
    [mock]12月28日
    [leetcode]Max Points on a Line
    *[topcoder]JumpFurther
    [mock]12月11日
    *[topcoder]GUMIAndSongsDiv1
    [leetcode]Reorder List
  • 原文地址:https://www.cnblogs.com/swordspoet/p/13984881.html
Copyright © 2020-2023  润新知