劍指offer 面試題28 對稱的二叉樹

2021-10-08 08:16:58 字數 655 閱讀 7736

請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的映象一樣,那麼它是對稱的。

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