[LeetCode] 965. Univalued Binary Tree

    xiaoxiao2022-06-30  122

    原题链接:https://leetcode.com/problems/univalued-binary-tree/

    1. 题目介绍

    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. 如果一个二叉树全部节点的val值都是相同,那么我们称这个二叉树是univalued的。 写一个函数判断给定的二叉树是否是univalued二叉树。

    Example 1:

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

    Example 2:

    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]. 节点的数量范围是[1,100] 节点的val值范围是[0,99]

    2. 解题思路

    DFS+递归 使用递归函数,判断每一个节点的val值是否和第一个节点的val值相同。如果不相同直接返回false,相同则继续递归判断左子节点和右子节点。

    实现代码

    /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { public boolean isUnivalTree(TreeNode root) { if(root == null){ return true; } return helper(root,root.val); } public boolean helper(TreeNode root,int value){ if(root == null){ return true; } if(root.val != value){ return false; } return helper(root.left,value) && helper(root.right,value); } }

    最新回复(0)