101對稱二叉樹的思路:
遞迴方法是最容易想到的
*****.結束條件判定需要注意:1) 當前節點為空則返回true 2)當前節點左右子樹有乙個為空 返回false 3)當前節點左右子樹都不為空,但值不相等返回false
4)左右子樹不為空,且節點相等,需要進行下一步判定·····重複1~4
138「外觀數列」是乙個整數序列,從數字 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 }
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...