每日一題 平衡二叉樹

2021-10-25 05:37:46 字數 924 閱讀 4056

題目描述

給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。

本題中,一棵高度平衡二叉樹定義為:

乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1 。

示例1

輸入:root = [3,9,20,null,null,15,7]

輸出:true

示例2

輸入:root = [1,2,2,3,3,null,null,4,4]

輸出:false

思路由平衡二叉樹的定義(一棵二叉樹是平衡二叉樹,當且僅當其所有子樹也都是平衡二叉樹),因此可以採用遞迴的方法進行判斷。

採用自頂向下的遞迴方法,先判斷當前節點的左右子樹的高度差是否不超過1,如果超過1,則直接返回false,然後遞迴地判斷當前節點的左右孩子節點,看其孩子節點的左右子樹高度差是否不超過1。而對於當前節點的高度計算為:若當前節點為空節點,則返回0,否則返回左節點和右節點的高度的較大值+1

**

/**

* definition for a binary tree node.

* public class treenode

* }*/class

solution

private

intheight

(treenode root)

}

每日一題 重建二叉樹

題目 輸入某二叉樹的先序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的先序遍歷和中序遍歷的結果中都不含重複的數字。例如 前序遍歷序列 1,2,4,7,3,5,6,8 和中序遍歷序列 4,7,2,1,5,3,8,6 重建出下圖所示的二叉樹並輸出它的頭結點。param preorder 先序遍歷 p...

LeetCode每日一題 二叉樹的直徑

給定一棵二叉樹,你需要計算它的直徑長度。一棵二叉樹的直徑長度是任意兩個結點路徑長度中的最大值。這條路徑可能穿過根結點。示例 給定二叉樹 1 2 3 4 5返回 3,它的長度是路徑 4,2,1,3 或者 5,2,1,3 注意 兩結點之間的路徑長度是以它們之間邊的數目表示 坐了半天沒做對,最後才發現最長...

LeetCode每日一題114 二叉樹展開為鍊錶

題目 給定乙個二叉樹,原地將他展開為乙個鍊錶 單向,右指標 如圖 方法1 前序遍歷遞迴 class solution preorder root public treenode preorder treenode root if right node null return root 方法2 前序遍...