zoom笔试

zoom笔试,二叉树那题,写个python版的,给大家参考下吧,感觉有点难度啊
# -*- coding: utf-8 -*-
"""
Created on Tue Aug  9 09:25:15 2022

@author: MI
"""


class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None


def findNode(node: int):
    res = []
    for x in q:
        if node in x:
            res.append(x[0])
            res.append(x[1])
            res.remove(node)
    return res

def preorder(node, head):
    if head.val == node:
        return head
    if head.left != None:
        return preorder(node, head.left)
    if head.right != None:
        return preorder(node, head.right)


def structTree(node: int, head: TreeNode):
    num = findNode(node)
    for x in num:
        if x in tree:
            num.remove(x)
    if len(num) == 0:
        return
    tmp = preorder(node, head)
    for x in num:
        if tmp.left == None:
            tmp.left = TreeNode(x)
            tree.append(x)
        else:
            tmp.right = TreeNode(x)
            tree.append(x)
    if len(num) > 1:
        structTree(num[0], head)
        structTree(num[1], head)
    elif len(num) == 1:
        structTree(num[0], head)


def Findpath(root, target):
    global path
    if (root == None):
        return False
    if str[root.val - 1] == 'R':
        path.append(1)
    else:
        path.append(-1)
    if (root.val == target):
        return True
    if (Findpath(root.left, target)):
        return True
    if (Findpath(root.right, target)):
        return True
    path.pop()
    return False

if __name__ == '__main__':
    n = int(input())
    str = input()
    q = []
    for i in range(n - 1):
        q.append(list(map(int, input().rstrip().split())))

    head = TreeNode(1)
    tree = []
    tree.append(1)
    structTree(1, head)

    res = []
    for x in tree:
        path = []
        Findpath(head, x)
        res.append(abs(sum(path)))

    print(sum(res))

#ZOOM笔试##zoom校招##Zoom##二叉树#
全部评论
貌似笔试都有树的题啊
点赞 回复 分享
发布于 2022-08-14 19:41
楼主能麻烦说一下题目吗?看代码看不出来在干嘛
点赞 回复 分享
发布于 2022-08-19 02:23 新加坡

相关推荐

尊嘟假嘟点击就送:加v细说,问题很大
点赞 评论 收藏
分享
Natrium_:这时间我以为飞机票
点赞 评论 收藏
分享
1 5 评论
分享
牛客网
牛客企业服务