請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的映象一樣,那麼它是對稱的。
二叉樹 [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
遞迴法class solution
bool help
(treenode* left, treenode* right)
};
迭代法
利用佇列進行迭代。佇列中每兩個連續的結點應該是相等的,而且它們的子樹互為映象。最初,佇列中包含的是 root->left 以及 root->right。該演算法的工作原理類似於 bfs,但存在一些關鍵差異。每次提取兩個結點並比較它們的值。然後,將兩個結點的左右子結點按相反的順序插入佇列中。當隊列為空時,或者檢測到樹不對稱(即從佇列中取出兩個不相等的連續結點)時,該演算法結束。
class solution
return true;}}
;
《劍指offer 面試題28 對稱的二叉樹》
劍指offer 面試題28 對稱的二叉樹 註明 僅個人學習筆記 先序遍歷的序列 等於 對稱先序遍歷的序列 當樹中所有節點均相同時,遍歷時,序列中帶入null,便可區分 package com.chapter3.code public class issymmetrical28 private boo...
劍指offer 面試題28 對稱的二叉樹
請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的映象一樣,那麼它是對稱的。例如,二叉樹 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 輸入 root 1,2,...
劍指OFFER 面試題28 對稱的二叉樹
題目 請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的映象一樣,那麼它是對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 34 43但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 33示例 1 輸入 root 1,2,2,...