【劍指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——重建二叉樹二叉樹
- 【劍指offer】二叉樹深度二叉樹
- 劍指offer(四)重建二叉樹二叉樹
- 27. 二叉樹的映象二叉樹
- 劍指Offer-40-二叉樹的深度二叉樹
- 劍指offer——二叉樹的深度C++二叉樹C++
- 《劍指offer》:[59]對稱的二叉樹二叉樹
- 《劍指offer》:[39]求解二叉樹的深度二叉樹
- 劍指 Offer 07. 重建二叉樹二叉樹
- 【劍指offer】判斷二叉樹平衡二叉樹
- 劍指offer | 55 - I. 二叉樹的深度二叉樹
- [劍指offer] 把二叉樹列印成多行二叉樹
- 《劍指offer》:[62]序列化二叉樹二叉樹
- 《劍指offer》:[60]把二叉樹列印成多行二叉樹
- 【劍指offer】從上向下列印二叉樹二叉樹
- # 劍指 Offer 68 - II. 二叉樹的最近公共祖先二叉樹
- 《劍指offer》:[58]二叉樹的下一個結點二叉樹
- 劍指offer(C++)——把二叉樹列印成多行C++二叉樹
- 【劍指offer】樹的子結構
- 【劍指offer】二叉樹中和為某一值的路徑二叉樹
- 劍指offer--把二叉樹列印成多行(C++)二叉樹C++
- 《劍指offer》之在完全二叉樹中新增子節點二叉樹
- 劍指offer——從上往下列印二叉樹C++二叉樹C++
- 《劍指offer》:[61]按之字形順序列印二叉樹二叉樹
- 劍指 Offer 32 - III. 從上到下列印二叉樹 III二叉樹
- 《劍指offer》:[39-1]判斷是否為平衡二叉樹二叉樹
- 劍指 Offer 34. 二叉樹中和為某一值的路徑二叉樹
- 劍指offer-17:樹的子結構
- 劍指offer面試18 樹的子結構面試
- 劍指offer(java實現)第4題“重建二叉樹”-牛客網Java二叉樹
- 劍指 Offer 32 - I. 從上到下列印二叉樹(java解題)二叉樹Java
- 【劍指offer】【4】根據前序和中序結果,重建二叉樹二叉樹
- LeetCode 劍指offer——從上到下列印二叉樹 II、從上到下列印二叉樹 IIILeetCode二叉樹
- (python版)《劍指Offer》JZ57:二叉樹的下一個結點Python二叉樹
- leetcode 102 劍指Offer 32 二叉樹的層次遍歷LeetCode二叉樹