【劍指offer】27. 二叉樹的映象
題目描述
// 力扣
// 請完成一個函式,輸入一個二叉樹,該函式輸出它的映象。
// 牛客
// 操作給定的二叉樹,將其變換為源二叉樹的映象。
題解
// 遞迴一定要按照函式的語義來遞迴,往往不需要知道遞迴細節
// 遞迴到最後總是會需要解決問題的基本單元,在這道題目中,
// 問題的基本單元就是交換一個根結點的左結點(假設是葉結點吧)和右結點
// 力扣
// 執行用時:0 ms, 在所有 Java 提交中擊敗了100.00%的使用者
// 記憶體消耗:35.7 MB, 在所有 Java 提交中擊敗了82.58%的使用者
class Solution {
// 解題函式:使輸入二叉樹root映象翻轉
// 遍歷按照前序遍歷的順序,先對當前結點使用swap,
// 然後在左子樹遞迴映象翻轉函式mirrorTree,
// 最後在右子樹遞迴映象翻轉函式mirrorTree
public TreeNode mirrorTree(TreeNode root) {
if (root == null)
return null;
swap(root); //
mirrorTree(root.left);
mirrorTree(root.right);
return root;
}
// 交換函式:僅對當前根結點A的左子樹與右子樹交換一次位置
private TreeNode swap(TreeNode A) {
TreeNode temp = A.left;
A.left = A.right;
A.right = temp;
return A;
}
}
// 牛客
// 執行時間:15ms
// 佔用記憶體:9836k
public class Solution {
public void Mirror(TreeNode root) {
if (root == null)
return;
root = swap(root);
Mirror(root.left);
Mirror(root.right);
}
private TreeNode swap(TreeNode A) {
TreeNode temp = A.left;
A.left = A.right;
A.right = temp;
return A;
}
}
相關文章
- 力扣 - 劍指 Offer 27. 二叉樹的映象力扣二叉樹
- 劍指offer——二叉樹的映象C++二叉樹C++
- 【劍指offer】5.二叉樹的映象和列印二叉樹
- 劍指offer——重建二叉樹二叉樹
- 27. 二叉樹的映象二叉樹
- 劍指offer(四)重建二叉樹二叉樹
- 劍指Offer-40-二叉樹的深度二叉樹
- 劍指offer——二叉樹的深度C++二叉樹C++
- 劍指 Offer 07. 重建二叉樹二叉樹
- 劍指offer | 55 - I. 二叉樹的深度二叉樹
- [劍指offer] 把二叉樹列印成多行二叉樹
- # 劍指 Offer 68 - II. 二叉樹的最近公共祖先二叉樹
- [劍指offer] 二叉搜尋樹的後序遍歷序列
- leetcode 102 劍指Offer 32 二叉樹的層次遍歷LeetCode二叉樹
- 劍指offer--把二叉樹列印成多行(C++)二叉樹C++
- 《劍指offer》之在完全二叉樹中新增子節點二叉樹
- 劍指offer——從上往下列印二叉樹C++二叉樹C++
- 劍指 Offer 32 - III. 從上到下列印二叉樹 III二叉樹
- 劍指 Offer 33. 二叉搜尋樹的後序遍歷序列
- 劍指 Offer 34. 二叉樹中和為某一值的路徑二叉樹
- LeetCode 劍指offer——從上到下列印二叉樹 II、從上到下列印二叉樹 IIILeetCode二叉樹
- 劍指offer-17:樹的子結構
- 劍指 Offer 54. 二叉搜尋樹的第k大節點 mark
- (python版)《劍指Offer》JZ57:二叉樹的下一個結點Python二叉樹
- 劍指offer(java實現)第4題“重建二叉樹”-牛客網Java二叉樹
- 【劍指offer】【4】根據前序和中序結果,重建二叉樹二叉樹
- 劍指 Offer 32 - I. 從上到下列印二叉樹(java解題)二叉樹Java
- 力扣 - 劍指 Offer 54. 二叉搜尋樹的第k大節點力扣
- 劍指OFFER
- 劍指offer 面試題 7 :二叉樹的下一個節點是什麼?面試題二叉樹
- 每日一題 - 劍指 Offer 54. 二叉搜尋樹的第k大節點每日一題
- 劍指 Offer 34. 二叉樹中和為某一值的路徑(java解題)二叉樹Java
- (python版)《劍指Offer》JZ24:二叉樹中和為某一值的路徑Python二叉樹
- PHPer面試必看:分門別類帶你擼《劍指Offer》之二叉樹PHP面試二叉樹
- 劍指offer刷題筆記-32.從上到下列印二叉樹 進階筆記二叉樹
- 劍指 Offer 32 - II. 從上到下列印二叉樹 II 做題筆記二叉樹筆記
- 劍指offer:輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。二叉樹
- 二叉樹的映象二叉樹