對稱二叉樹 BFS DFS 遞迴解答

2021-08-21 03:53:35 字數 594 閱讀 4971

題目詳見:

二叉樹結構定義

// definition for a binary tree node.

struct treenode

};

1 bfs

思路:將每一層的資料存入佇列中,按照左邊的左邊與右邊的右邊相等、左邊的右邊與右邊的左邊進行比較判斷。

bool issymmetric(treenode* root) 

return 1;

}

2 dfs

思路:深度遍歷最左和最右的部分,並將資料依次存入棧中,從兩側向中間依次比較

bool issymmetric(treenode* root) else

}return true;

}

3 遞迴

思路:遞迴的方式和bfs的思路是一致的,通過遞迴的方式進行表達

bool issymmetric(treenode* root) 

bool cmp(treenode* left,treenode* right)

解答參考:

遞迴 對稱二叉樹

原題傳送門 說點題外話,這道題是noip2019 pjt4,被稱作有史以來最簡單的t4,然而.我這個小蒟蒻當時只得了4分 直接輸出1 現在回想起來,覺得自己那時是真的智障啊,最可氣的是,這道題一讀題就可以發現結果很容易為3,哪怕完全不會,直接輸出3也明顯比直接輸出1要好啊 事實證明,直接輸出3的得分...

對稱二叉樹(遞迴 迭代)

給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 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說明 如果你可以運用遞迴和迭代兩種方法解決這個問題,會很加分。寫乙個遞迴函式,當且僅當兩個節...

演算法 遞迴 對稱二叉樹

根據對稱樹的特點,我們用兩個指標分別往左子節點和右子節點遞迴查詢 每次查詢時比較他們是否都為空,如果都不為空就比較是否值相等 如果值相等,就繼續檢查左節點的左節點和右節點的右節點 左節點的右節點和右節點的左節點 只要都相同就說明對稱,否則不對稱 我們使用乙個佇列,根據對稱樹的特點,每次分別將左子節點...