給定乙個二叉樹,檢查它是否是映象對稱的。
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
bool
dfs(treenode* left,treenode* right)
};
解答:如果要判斷這棵樹是否對稱,那麼他的子樹肯定也是對稱的,所以要用到遞迴。我們要判斷的並不是乙個節點的左右子節點是否是相同的而是這棵樹是否是對稱的。所以要把遞迴的形參改為對稱的節點。這個對稱節點的左子節點應該與另乙個對稱節點的右子節點對稱,這個對稱節點的右子節點應該與另乙個對稱節點的左子節點對稱。那麼返回值就可以確定了。又節點存在為空的情況,如果兩個需要判斷的節點同時為空可以判為true,如果乙個為空乙個不為空,則為false,如果都不為空則判斷val是否相等。
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
bool
check
(treenode* root)
return
true;}
};
解答:在遞迴的基礎上寫出迭**法,由於根節點有且只有乙個所以他可以認為和自己對稱,然後還是上面的方法,但是需要注意的是,需要比較的是從佇列出來的連續兩個元素。 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...