6

LeetCode: 965. Univalued Binary Tree

 3 years ago
source link: https://mozillazg.com/2021/01/leetcode-965-univalued-binary-tree.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

题目

原题地址:https://leetcode.com/problems/univalued-binary-tree/

A binary tree is univalued if every node in the tree has the same value.

Return true if and only if the given tree is univalued.

Example 1:

image

Input: [1,1,1,1,1,null,1]
Output: true

Example 2:

image2

Input: [2,2,2,5,2]
Output: false

Note:

  • The number of nodes in the given tree will be in the range [1, 100].
  • Each node's value will be an integer in the range [0, 99].

解法

遍历二叉树,如果有值跟根节点的值不一样那么就是 False 否则就是 True

这个方法的 Python 代码类似下面这样:

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def isUnivalTree(self, root: TreeNode) -> bool:
        if root is None:
            return True
        stack = [root]
        value = root.val

        while stack:
            node = stack.pop(0)
            if node.val != value:
                return False
            if node.left is not None:
                stack.append(node.left)
            if node.right is not None:
                stack.append(node.right)

        return True

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK