溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么解析單值二叉樹

發(fā)布時(shí)間:2021-12-13 17:40:55 來源:億速云 閱讀:139 作者:柒染 欄目:大數(shù)據(jù)

今天就跟大家聊聊有關(guān)怎么解析單值二叉樹,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

1,問題簡述

    如果二叉樹每個(gè)節(jié)點(diǎn)都具有相同的值,那么該二叉樹就是單值二叉樹。

只有給定的樹是單值二叉樹時(shí),才返回 true;否則返回 false。

2,示例

怎么解析單值二叉樹

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

3,題解思路

使用前序遍歷的方式,隊(duì)列方法進(jìn)行解決

4,題解程序


import java.util.ArrayList;import java.util.LinkedList;import java.util.List;import java.util.Queue;
public class IsUnivalTreeTest {    public static void main(String[] args) {        TreeNode t1 = new TreeNode(1);        TreeNode t2 = new TreeNode(1);        TreeNode t3 = new TreeNode(1);        TreeNode t4 = new TreeNode(1);        TreeNode t5 = new TreeNode(1);        TreeNode t6 = new TreeNode(1);        t1.left = t2;        t1.right = t3;        t2.left = t4;        t2.right = t5;        t3.right = t6;        boolean univalTree = isUnivalTree2(t1);        System.out.println("univalTree = " + univalTree);

   }
   public static boolean isUnivalTree(TreeNode root) {        if (root == null) {            return true;        }        Queue<TreeNode> queue = new LinkedList<>();        queue.add(root);        List<Integer> list = new ArrayList<>();        while (!queue.isEmpty()) {            int size = queue.size();            for (int i = 0; i < size; i++) {                TreeNode treeNode = queue.poll();                list.add(treeNode.val);                if (treeNode.left != null) {                    queue.add(treeNode.left);                }                if (treeNode.right != null) {                    queue.add(treeNode.right);                }            }        }        Integer val = list.get(0);        for (int num : list) {            if (num != val) {                return false;            }        }        return true;    }
   public static boolean isUnivalTree2(TreeNode root) {        if (root == null) {            return true;        }        if (root.left != null && root.val != root.left.val) {            return false;        }        if (root.right != null && root.val != root.right.val) {            return false;        }        return isUnivalTree(root.left) && isUnivalTree(root.right);    }}

5,題解程序圖片版

怎么解析單值二叉樹

看完上述內(nèi)容,你們對怎么解析單值二叉樹有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI