請完成乙個函式,輸入乙個二叉樹,該函式輸出它的映象。
例如輸入:
4/ \
2 7
/ \ / \
1 3 6 9
映象輸出:
4/ \
7 2
/ \ / \
9 6 3 1
示例 1:
輸入:root = [4,2,7,1,3,6,9]
輸出:[4,7,2,9,6,3,1]
1. 遞迴法,自下而上
遞推解析:
a. 當節點root為空,則返回null;
b. 遞迴,root.left = mirrortree(root.right);
c. root.right = mirrortree(tmp), tmp用來暫時儲存原來的root.left。
/**
* definition for a binary tree node.
* public class treenode
* }*/class solution
}
2. 輔助棧
演算法流程:
a. 特例處理: 當 root 為空時,直接返回 nullnull ;
b. 初始化: 棧(或佇列),本文用棧,並加入根節點 root 。
c. 迴圈交換: 當棧 stack為空時跳出;
(1) 出棧: 記為 node;
(2) 新增子節點: 將 node左和右子節點入棧;
(3) 交換: 交換 node的左 / 右子節點。
/**
* definition for a binary tree node.
* public class treenode
* }*/class solution };
while(!st.isempty())
return root;
}}
力扣題解 劍指 Offer 27 二叉樹的映象
請完成乙個函式,輸入乙個二叉樹,該函式輸出它的映象。例如輸入 4 2 7 1 3 6 9 映象輸出 4 7 2 9 6 3 1 示例 1 輸入 root 4,2,7,1,3,6,9 輸出 4,7,2,9,6,3,1 限制 0 節點個數 1000 題解 二叉樹映象定義 對於二叉樹中任意節點 root ...
力扣刷題 劍指 Offer 27 二叉樹的映象
請完成乙個函式,輸入乙個二叉樹,該函式輸出它的映象。例如輸入 4 2 7 1 3 6 9 映象輸出 4 7 2 9 6 3 1示例 1 輸入 root 4,2,7,1,3,6,9 輸出 4,7,2,9,6,3,1 這道題目需遍歷完二叉樹,每遍歷到乙個節點就交換它的左右節點,當遍歷完成以後就實現了整個...
劍指offer 27 二叉樹的映象
宣告 本系列部落格是對何海濤 劍指offer 的關鍵點總結。1.樹的映象 定義 樹的根結點相同,但是左右兩個子節點交換了位置 2.解題思路 1 前序遍歷樹的每乙個結點 2 如果遍歷到的節點有子節點,則交換其左右兩個子節點 3 分別以左子節點和右子節點作為新的根結點,遞迴呼叫該函式 4 當遍歷到的結點...