刷題98 樹(五)

2021-10-06 02:19:14 字數 2518 閱讀 8679

題152-題154

題目鏈結題目描述

請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的映象一樣,那麼它是對稱的。

例如,二叉樹 [1,2,2,3,4,4,3] 是對稱的。

1

/ \ 2

2/ \ / \34

43

但是下面這個 [1,2,2,null,3,null,3] 則不是映象對稱的:

1

/ \ 2

2 \ \

33

示例 1:

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

輸出:true

示例 2:

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

輸出:false

限制:0 <= 節點個數 <= 1000

注意:本題與主站 101 題相同:

題目分析

r1,r2分別是根節點的左右子樹;

若是r1,r2都為空,返回true;

若是r1,r2有乙個為空,返回false;

判斷r1的左子樹和r2的右子樹、r1的右子樹和r2的左子樹是否相等,並返回。

/**

* definition for a binary tree node.

* function treenode(val)

*//**

* @param root

* @return

*/var

issymmetric

=function

(root)

return

ismirror

(root,root);}

;

題目鏈結題目描述

輸入一棵二叉樹的根節點,判斷該樹是不是平衡二叉樹。如果某二叉樹中任意節點的左右子樹的深度相差不超過1,那麼它就是一棵平衡二叉樹。

示例 1:

給定二叉樹 [3,9,20,null,null,15,7]

3

/ \9

20/ \

157

返回 true 。

示例 2:

給定二叉樹 [1,2,2,3,3,null,null,4,4]

1

/ \2

2/ \33

/ \4

4

返回 false 。

限制:1 <= 樹的結點個數 <= 10000

注意:本題與主站 110 題相同:

題目分析

設定flag = true,flag用來判斷是不是平衡二叉樹;

分別遍歷左子樹和右子樹;

計算每次遍歷後的左子樹和右子樹高度差,高度差大於1的時候,flag=false;

/**

* definition for a binary tree node.

* function treenode(val)

*//**

* @param root

* @return

*/var

isbalanced

=function

(root)

};

題目鏈結題目描述

輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點(含根、葉節點)形成樹的一條路徑,最長路徑的長度為樹的深度。

例如:給定二叉樹 [3,9,20,null,null,15,7],

3

/ \9

20/ \

157

返回它的最大深度 3 。

節點總數 <= 10000

注意:本題與主站 104 題相同:

題目分析

遍歷二叉樹的左子樹和右子樹,直到為空;

判斷找出當前最長路徑,並記錄。

/**

* definition for a binary tree node.

* function treenode(val)

*//**

* @param root

* @return

*/var

maxdepth

=function

(root)

if(root.left)

rode

(root.left,num+1)

;if(root.right)

rode

(root.right,num+1)

;}return max;

};

刷題 樹篇 98 驗證二叉搜尋樹

98.驗證二叉搜尋樹 給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 節點的左子樹只包含小於當前節點的數。節點的右子樹只包含大於當前節點的數。所有左子樹和右子樹自身必須也是二叉搜尋樹。示例 1 輸入 2 1 3 輸出 true 示例 2 輸入 5 1 4 3 6 輸...

演算法題 LeetCode刷題(五)

資料結構和演算法是程式設計路上永遠無法避開的兩個核心知識點,本系列 演算法題 旨在記錄刷題過程中的一些心得體會,將會挑出leetcode等最具代表性的題目進行解析,題解基本都來自於leetcode官網 本文是第五篇。給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以...

LeetCode刷題筆記 98 驗證二叉搜尋樹

給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 節點的左子樹只包含小於當前節點的數。節點的右子樹只包含大於當前節點的數。所有左子樹和右子樹自身必須也是二叉搜尋樹。示例 1 輸入 2 13輸出 true 示例 2 輸入 5 14 3 6輸出 false 解釋 輸入為 ...