力扣 劍指 Offer 27 二叉樹的映象 簡單

2021-10-08 05:25:52 字數 1006 閱讀 3898

請完成乙個函式,輸入乙個二叉樹,該函式輸出它的映象。

例如輸入:

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 當遍歷到的結點...