yankewei / LeetCode

LeetCode 问题的解决方法
MIT License
6 stars 0 forks source link

单值二叉树 #145

Open yankewei opened 2 years ago

yankewei commented 2 years ago

如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。

只有给定的树是单值二叉树时,才返回 true;否则返回 false。

示例 1:

image

输入:[1,1,1,1,1,null,1]
输出:true

示例 2: image

输入:[2,2,2,5,2]
输出:false

提示:

来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/univalued-binary-tree 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

yankewei commented 2 years ago

深度优先搜索

先序遍历

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func isUnivalTree(root *TreeNode) bool {
    return isSameVal(root, root.Val)
}

func isSameVal(tree *TreeNode, val int) bool {
    if tree == nil {
        return true
    }

    if tree.Val != val {
        return false
    }

    return isSameVal(tree.Left, val) && isSameVal(tree.Right, val)
}