LeetCode 101 對稱二叉樹

2021-10-06 16:32:22 字數 1218 閱讀 4052

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

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

高階:

你可以運用遞迴和迭代兩種方法解決這個問題嗎?

解題思路:此題是《劍指offer》書上的題,雖然leetcode標記的是esay,但是此題考查了很多基礎的知識,比如樹的遞迴遍歷和迭代遍歷,很容易在面試中考到。本題也提出了用遞迴和迭代兩種解法。

遞迴解法

遞迴解法應該是比較容易想的,沒很大的難點,用兩個指標指向樹的左子樹和右子樹,遞迴地將左子樹和右子樹、右子樹和左子樹比較。

/**

* definition for a binary tree node.

* struct treenode

* };

*/class

solution}}

bool

issymmetric

(treenode* root)

};

迭代解法

樹的迭代解法肯定是要在樹的層序遍歷長做文章,此題也不例外,影響此題直接用層序遍歷判斷一層的序列是否逆序的攔路虎是,一層的序列是逆序的並不能說明這層的節點符合映象,比如樣例2,破壞我們判斷的是空指標,那麼自然我們想到將空指標作為乙個特殊值也存入一層序列中,然後對這層序列進行逆序判斷即可知道,這層序列是否符合樹的映象要求。

/**

* definition for a binary tree node.

* struct treenode

* };

*/class

solution};

while

(!q.

empty()

)}int k =

0, l = tmp.

size()

-1;while

(k < l)

}return

true;}

};

LeetCode 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 說明 如果你可以遞迴地和迭代地解決它就獎勵你點數。建立乙個映象的樹,然...

LeetCode(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說明 如果你可以運用遞迴和迭代兩種方法解決這個問題,會很加分。這道題也是劍指offer上的2...

leetcode 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思路 如果同時滿足下面的條件,兩個樹互為映象 它們的兩個根結點具有相同的值。每個樹的右子樹都...