101 對稱二叉樹 (力扣)

2021-10-10 07:38:06 字數 1022 閱讀 7129

給定乙個二叉樹,檢查它是否是映象對稱的。

例如,二叉樹 [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

bool issymmetric2

(struct treenode* q,

struct treenode* p)

if(p ==

null

&& q !=

null

)return0;

if(p !=

null

&& q ==

null

)return0;

int flag1 = q->val == p->val;

// if(flag1==0) return 0; //可以加乙個判定條件,如果值不相等

//直接返回0

int flag2 =

issymmetric2

(q->left, p->right)

&&issymmetric2

(q->right, p->left)

;//判斷接下來的

return

(flag1 && flag2)

;//如果任意乙個flag為0,則不是映象二叉樹!(

}bool issymmetric

(struct treenode* root)

由於是遞迴,空間佔用率比較高。

在解題時,考慮到,如果只傳遞乙個節點的位址。只能判斷該節點的,子節點。而映象二叉樹與該節點的子節點無關。映象二叉樹,即乙個節點向左,那麼另乙個節點就要相右。本演算法,採取了由頂向下的思路。

傳遞兩個位址,進行映象遞迴。在思考,邊界條件即可。其中任意一步不符合映象二叉樹,則不是映象二叉樹。

力扣 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 二 解題思路 遞迴思想。1 先判斷根節點是否為空節點 2 判斷左子樹a和右...

力扣101 對稱二叉樹

判斷二叉樹是否對稱 給定一棵二叉樹,判斷琪是否是自身的映象 即 是否對稱 例如 下面這棵二叉樹是對稱的 2 2 3 4 4 3 下面這棵二叉樹不對稱。2 2 3 3 備註 希望你可以用遞迴和迭代兩種方法解決這個問題 示例1輸入 輸出true 示例2輸入 輸出false 對稱二叉樹 模式識別 深度搜尋...

力扣 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 高階 你可以運用遞迴和迭代兩種方法解決這個問題嗎?我是遞迴 如果當前樹是對稱的,那麼其左...