101 對稱二叉樹 38 外觀數列

2022-06-30 08:33:07 字數 1982 閱讀 9006

101對稱二叉樹的思路:

遞迴方法是最容易想到的

*****.結束條件判定需要注意:1) 當前節點為空則返回true    2)當前節點左右子樹有乙個為空 返回false    3)當前節點左右子樹都不為空,但值不相等返回false

4)左右子樹不為空,且節點相等,需要進行下一步判定·····重複1~4

1

/**2

* definition for a binary tree node.

3* public class treenode

8* }9*/

10class

solution else

if(left==null||right==null

)else

if(left.val!=right.val)else21}

22public

boolean

issymmetric(treenode root)

26 }

38「外觀數列」是乙個整數序列,從數字 1 開始,序列中的每一項都是對前一項的描述。前五項如下:

1. 1

2. 11

3. 21

4. 1211

5. 111221

1 被讀作  "one 1"  ("乙個一") , 即 11。

11 被讀作 "two 1s" ("兩個一"), 即 21。

21 被讀作 "one 2",  "one 1" ("乙個二" ,  "乙個一") , 即 1211。

給定乙個正整數 n(1 ≤ n ≤ 30),輸出外觀數列的第 n 項。

注意:整數序列中的每一項將表示為乙個字串。

示例 1:

輸入: 1

輸出: "1"

解釋:這是乙個基本樣例。

示例 2:

輸入: 4

輸出: "1211"

解釋:當 n = 3 時,序列是 "21",其中我們有 "2" 和 "1" 兩組,"2" 可以讀作 "12",也就是出現頻次 = 1 而 值 = 2;類似 "1" 可以讀作 "11"。所以答案是 "12" 和 "11" 組合在一起,也就是 "1211"。

思路1:用迭代的方法。1.分析問題,後面的字串是對前面字串的解析,需要把前面的字串當成每乙個字元陣列。2.當比較字串陣列的第i項時需要檢視第i+1項的元素是否和第i項元素相等,如果不相等則輸出,如果相等繼續比較。

class solution {

public string countandsay(int n) {

stringbuilder s1 = new stringbuilder("1");

stringbuilder sb = new stringbuilder();

for(int i=1;i思路2:用遞迴方法解決 同樣的思路,但是執行時間缺縮短很多

總結 :有圖有真相,1)前面15m是用string 所以時間花費在開闢新物件上面了,後面用stringbuilder省了不少時間,

3)  遞迴只要是不重複,好像比迭代還要節省時間。

101 對稱二叉樹

給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 3 3說明 如果你可以運用遞迴和迭代兩種方法解決這個問題,會很加分。思路 遞迴就用dfs,迭代是b...

101 對稱二叉樹

給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3 但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 3 3說明 如果你可以運用遞迴和迭代兩種方法解決這個問題,會很加分。解題思路 對稱二叉樹可以理解...

101 對稱二叉樹

給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3 但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 3 3 說明 如果你可以運用遞迴和迭代兩種方法解決這個問題,會很加分。使用輔助空間佇列 defi...