zoukankan      html  css  js  c++  java
  • leetcode1305

     1 class Solution:
     2     def midOrder(self,root,l):
     3         if root != None:
     4             if root.left != None:
     5                 self.midOrder(root.left,l)
     6             l.append(root.val)
     7             if root.right != None:
     8                 self.midOrder(root.right,l)
     9                 
    10     def getAllElements(self, root1: TreeNode, root2: TreeNode) -> List[int]:
    11         l1,l2 = [],[]
    12         self.midOrder(root1,l1)
    13         self.midOrder(root2,l2)
    14         res = []
    15         n1,n2 = len(l1),len(l2)
    16         i,j = 0,0
    17         while i < n1 and j < n2:
    18             if l1[i] <= l2[j]:
    19                 res.append(l1[i])
    20                 i += 1
    21             else:
    22                 res.append(l2[j])
    23                 j += 1
    24         if i < n1:
    25             res += l1[i:]
    26         elif j < n2:
    27             res += l2[j:]
    28         return res

    分别使用中序遍历两颗二叉搜索树,得到两个有序列表。再将两个数组合并为一个有序数组。

  • 相关阅读:
    hoj 13832 Fence
    hoj 13830 DNA Sequencing 字典树
    HOJ Funfair
    HOJ 13828 Funfair
    图论相关
    01字典树
    异或
    日常补题2017-10-31
    康拓展开
    日常训练17-10-27(16杭州ccpc)
  • 原文地址:https://www.cnblogs.com/asenyang/p/12114460.html
Copyright © 2011-2022 走看看