leetcode 101 對稱二叉樹 easy

2021-09-25 22:37:59 字數 1000 閱讀 4949

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

例如,二叉樹 [1,2,2,3,4,4,3] 是對稱的。

1/ \

2   2

/ \ / \

3  4 4  3

如果你可以運用遞迴和迭代兩種方法解決這個問題,會很加分。

解法1:遞迴,比較簡單

解法2:迭代 (可以用層序,也可以用中序)

借助兩個佇列queue來實現,我們首先判空,如果root為空,直接返回true。否則將root的左右兩個子結點分別裝入兩個佇列,然後開始迴圈,迴圈條件是兩個佇列都不為空。在while迴圈中,我們首先分別將兩個佇列中的隊首元素取出來,如果兩個都是空結點,那麼直接跳過,因為我們還沒有比較完,有可能某個結點沒有左子結點,但是右子結點仍然存在,所以這裡只能continue。然後再看,如果有乙個為空,另乙個不為空,那麼此時對稱性已經被破壞了,不用再比下去了,直接返回false。若兩個結點都存在,但是其結點值不同,這也破壞了對稱性,返回false。否則的話將node1的左子結點和右子結點排入佇列1,注意這裡要將node2的右子結點和左子結點排入佇列2,注意順序的對應問題。最後迴圈結束後直接返回true

// 遞迴**

class solution

bool core(treenode *lhs, treenode* rhs)

};//迭代**

class solution

return true;

}};// 中序遍歷版

class solution

if(l || r) return false;

l=left.top(); left.pop();

r=right.top(); right.pop();

if(l->val != r->val) return false;

l=l->right; r=r->left;

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