zoukankan      html  css  js  c++  java
  • 【leetcode】1361. Validate Binary Tree Nodes

    题目如下:

    You have n binary tree nodes numbered from 0 to n - 1 where node i has two children leftChild[i] and rightChild[i], return true if and only if all the given nodes form exactly one valid binary tree.

    If node i has no left child then leftChild[i] will equal -1, similarly for the right child.

    Note that the nodes have no values and that we only use the node numbers in this problem.

    Example 1:

    Input: n = 4, leftChild = [1,-1,3,-1], rightChild = [2,-1,-1,-1]
    Output: true
    

    Example 2:

    Input: n = 4, leftChild = [1,-1,3,-1], rightChild = [2,3,-1,-1]
    Output: false
    

    Example 3:

    Input: n = 2, leftChild = [1,0], rightChild = [-1,-1]
    Output: false
    

    Example 4:

    Input: n = 6, leftChild = [1,-1,-1,4,-1,-1], rightChild = [2,-1,-1,5,-1,-1]
    Output: false

    Constraints:

    • 1 <= n <= 10^4
    • leftChild.length == rightChild.length == n
    • -1 <= leftChild[i], rightChild[i] <= n - 1

    解题思路:根据leftChild和rightChild的值模拟树的遍历,并记录遍历过的节点,最后判断节点数是否等于n。

    代码如下:

    class Solution(object):
        def validateBinaryTreeNodes(self, n, leftChild, rightChild):
            """
            :type n: int
            :type leftChild: List[int]
            :type rightChild: List[int]
            :rtype: bool
            """
            dic = {}
            
            queue = [0]
            while len(queue) > 0:
                node = queue.pop(0)
                if node in dic:
                    return False
                dic[node] = 1
                if leftChild[node] != -1:
                    queue.append(leftChild[node] )
                if rightChild[node] != -1:
                    queue.append(rightChild[node] )
            return len(dic) == n
  • 相关阅读:
    springmvc实现文件上传
    springmvc乱码及restful
    springmvc数据的处理
    springmvc跳转方式
    controller配置
    SpringMVC Annotation
    SpringMVC基本包
    第一章 面向对象软件工程与UML
    Oracle数据库之PL/SQL程序基础设计
    thinkphp5 给CSS JS 添加版本号
  • 原文地址:https://www.cnblogs.com/seyjs/p/12389868.html
Copyright © 2011-2022 走看看