Leetcode刷題筆記 100 相同的樹

2021-10-08 22:28:38 字數 1430 閱讀 2620

知識點:二叉樹

題目

給定兩個二叉樹,編寫乙個函式來檢驗它們是否相同。

如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。

示例1

輸入

1

1/ \ / \

2323[1,

2,3]

,[1,

2,3]

輸出

true

示例2

輸入

1

1/ \

22[1,2]

,[1,null,

2]

輸出

false

示例3

輸入

1

1/ \ / \

2112[1,

2,1]

,[1,

1,2]

輸出

false

解法

遞迴遍歷,比較

**

#include

#include

using

namespace std;

//definition for a binary tree node.

struct treenode

treenode

(int x)

:val

(x),

left

(nullptr),

right

(nullptr

)treenode

(int x, treenode *left, treenode *right)

:val

(x),

left

(left)

,right

(right)};

class

solution

else

if(p ==

nullptr

|| q ==

nullptr

)else

if(p-

>val != q-

>val)

else}}

;int

main()

今天也是愛zz的一天哦!

leetcode熱題100刷題筆記 2

62.不同路徑 64.最小路徑和 70.爬樓梯 這道題很容易看出來可以用dfs解決,但是其中有乙個容易迷惑的點,就是所謂的 最長路徑 並不一定經過根節點!因此,我們需要在dfs的過程中,對每乙個節點,計算其左子樹的高度l以及右子樹的高度r,那麼以當前節點為起點的路徑,經過的節點的最大值就是l r 1...

leetcode熱題100刷題筆記 5

96.不同的二叉搜尋樹 98.驗證二叉搜尋樹 101.對稱二叉樹 如果用遞迴的方法來寫,此題非常的簡單,是乙個基礎題,要熟悉的是非遞迴的迭代版本,利用棧來求解 資料結構如果學的足夠紮實,就應該知道這是乙個很經典的問題,其實質就是問你,按照1 n的順序入棧,出棧的序列有多少種,其實就是卡特蘭數,只要知...

Leetcode刷題筆記

1.兩數之和給定乙個整數陣列nums 和乙個目標值target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。ps 你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。思路 用target減去nums中的每乙個數,並設立乙個字典來記錄對應的下標 class...