コード例 #1
0
ファイル: tree_easy_617.py プロジェクト: hopensic/LearnPython
    def mergeTrees(self, t1: TreeNode, t2: TreeNode) -> TreeNode:
        if (not t1 and not t2):
            return None
        a = build_list_from_tree_new(t1)
        print(a)
        b = build_list_from_tree_new(t2)
        print(b)
        c = []
        e = []
        na = len(a)
        nb = len(b)
        d = na
        if na < nb:
            d = na
            e = b[d:]
        elif na > nb:
            d = nb
            e = a[d:]

        for i in range(0, d):
            if (a[i] is not None or b[i] is not None):
                if a[i] is None:
                    a[i] = 0
                if b[i] is None:
                    b[i] = 0
                c.append(a[i] + b[i])
            else:
                c.append(None)
        if (na != nb):
            f = c + e
        else:
            f = c

        # for x, y in zip_longest(a, b):
        #     if (x is not None or y is not None):
        #         if x is None:
        #             x = 0
        #         if y is None:
        #             y = 0
        #         c.append(x + y)
        #     else:
        #         c.append(None)
        print(f)
        return buildTree(f)
コード例 #2
0
        self.traverse(root)
        d[lst[0]] = lst[0]
        for x in lst[1:]:
            d[x] = d[x + 1] + x
        self.update(root)
        return root

    def traverse(self, node):
        if (not node):
            return
        self.traverse(node.right)
        lst.append(node.val)
        self.traverse(node.left)

    def update(self, node):
        if (not node):
            return
        self.update(node.right)
        node.val = d[node.val]
        self.update(node.left)


# treelist = [4, 1, 6, 0, 2, 5, 7, None, None, None, 3, None, None, None, 8]
treelist = [0, None, 1]
root_tree = buildTree(treelist)
print('-----')

solution = Solution()
solution.bstToGst(root_tree)
# solution.traverse(root_tree)
コード例 #3
0
# Definition for a binary tree node.

from leecode.common.commons import TreeNode, buildTree


class Solution:
    def insertIntoBST(self, root: TreeNode, val: int):
        t = root
        while (True):
            if (val < t.val):
                if (not t.left):
                    t.left = TreeNode(val)
                    return root
                t = t.left
            else:
                if (not t.right):
                    t.right = TreeNode(val)
                    return root
                t = t.right


so = Solution()

lst = [4, 2, 7, 1, 3]

root = buildTree(lst)

so.insertIntoBST(root, 5)
print('----------')
コード例 #4
0
ファイル: tree_easy_617.py プロジェクト: hopensic/LearnPython
        if (na != nb):
            f = c + e
        else:
            f = c

        # for x, y in zip_longest(a, b):
        #     if (x is not None or y is not None):
        #         if x is None:
        #             x = 0
        #         if y is None:
        #             y = 0
        #         c.append(x + y)
        #     else:
        #         c.append(None)
        print(f)
        return buildTree(f)


t1 = buildTree([1, 3, 2, 5])
t2 = buildTree([2, 1, 3, None, 4, None, 7])

# t1 = buildTree([3, 4, 5, 1, 2, None, None, 0])
# t2 = buildTree([4, 1, 2])

# t1 = buildTree([1, 2, None, 3])
# t2 = buildTree([1, None, 2, None, None, None, 3])

so = Solution()
r = so.mergeTrees(t1, t2)
print('---------')