单值二叉树

简介: 🎈今天给大家带来的是算法练习,题目为"单值二叉树"。

说在前面

🎈今天给大家带来的是算法练习,题目为"单值二叉树"。
如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。

题目描述

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

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

示例 2:

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

提示:

给定树的节点数范围是 [1, 100]。
每个节点的值都是整数,范围为 [0, 99] 。

思路分析

今天的这道题目就是一道简单的考察二叉树的遍历的题目,我们可以从前序遍历、中序遍历、后序遍历、层级遍历中随意选择自己喜欢的方式来进行解题。

  • 前序遍历

遍历顺序为:根节点->左子树->右子树

  • 中序遍历

遍历顺序为:左子树->根节点->右子树

  • 后序遍历

遍历顺序为:左子树->右子树->根节点

  • 层级遍历

遍历顺序为:深度为0的节点->深度为1的节点->……->深度为n的节点

AC代码

  • 代码一

使用dfs进行前序遍历,判断父子节点是否相等即可。

/**
 * Definition for a binary tree node.
 * function TreeNode(val, left, right) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.left = (left===undefined ? null : left)
 *     this.right = (right===undefined ? null : right)
 * }
 */
/**
 * @param {TreeNode} root
 * @return {boolean}
 */
var isUnivalTree = function(root) {
    let res = true;
    let dfs = function(r,val = null){
        if(!r || !res) return;
        if(val != null && r.val != val){
            res = false;
            return;
        }
        dfs(r.left,r.val);
        dfs(r.right,r.val);
    }
    dfs(root);
    return res;
};
  • 代码二

使用递归的方式不停往下判断父子节点是否相等

/**
 * Definition for a binary tree node.
 * function TreeNode(val, left, right) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.left = (left===undefined ? null : left)
 *     this.right = (right===undefined ? null : right)
 * }
 */
/**
 * @param {TreeNode} root
 * @return {boolean}
 */
var isUnivalTree = function(root,val = null) {
    const left = (root.left == null ||
                (root.val == root.left.val && isUnivalTree(root.left)));
    const right = (root.right == null ||
            (root.val == root.right.val && isUnivalTree(root.right)));
    return left && right;
};

说在后面

🎉这里是JYeontu,现在是一名前端工程师,有空会刷刷算法题,平时喜欢打打羽毛球🏸 ,平时也喜欢写些东西,既为自己记录📋,也希望可以对大家有那么一丢丢的帮助,写的不好望多多谅解🙇,写错的地方望指出,定会认真改进😊,在此谢谢大家的支持,我们下文再见🙌。
目录
相关文章
LeetCode | 965. 单值二叉树
LeetCode | 965. 单值二叉树
|
8月前
Leetcode.965 单值二叉树
Leetcode.965 单值二叉树
20 0
|
9月前
(leetcode)单值二叉树
(leetcode)单值二叉树
35 0
|
9月前
【数据结构】单值二叉树 & 相同的树 & 翻转二叉树(五)
【数据结构】单值二叉树 & 相同的树 & 翻转二叉树(五)
32 0
|
2月前
|
Java C++ Python
leetcode-538:把二叉搜索树转换为累加树
leetcode-538:把二叉搜索树转换为累加树
25 0
|
2月前
LeetCode——965. 单值二叉树
LeetCode——965. 单值二叉树
|
2月前
[LeetCode]——965——单值二叉树
[LeetCode]——965——单值二叉树
|
2月前
相同的树 单值二叉树 二叉树的最大深度
相同的树 单值二叉树 二叉树的最大深度
27 0
|
2月前
二叉树基础oj练习(单值二叉树、相同的树、二叉树的前序遍历)
二叉树基础oj练习(单值二叉树、相同的树、二叉树的前序遍历)
21 0
|
2月前
力扣 965. 单值二叉树
力扣 965. 单值二叉树
26 0

热门文章

最新文章