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 新加坡

相关推荐

不愿透露姓名的神秘牛友
11-07 20:21
签耀等华
算法功成师:我咋那么想举办你呢,铁铁
点赞 评论 收藏
分享
10-09 00:50
已编辑
长江大学 算法工程师
不期而遇的夏天:1.同学你面试评价不错,概率很大,请耐心等待;2.你的排名比较靠前,不要担心,耐心等待;3.问题不大,正在审批,不要着急签其他公司,等等我们!4.预计9月中下旬,安心过节;5.下周会有结果,请耐心等待下;6.可能国庆节前后,一有结果我马上通知你;7.预计10月中旬,再坚持一下;8.正在走流程,就这两天了;9.同学,结果我也不知道,你如果查到了也告诉我一声;10.同学你出线不明朗,建议签其他公司保底!11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
11-08 17:36
诺瓦科技_HR
点赞 评论 收藏
分享
1 5 评论
分享
牛客网
牛客企业服务