2021.11.29算法筆記
劍指 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]
自己的思路:
使用遞歸思路來解決即可
方法一:實現(xiàn)遞歸
解題代碼:
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @return {TreeNode}
*/
var mirrorTree = function (root) {
// 應該使用遞歸的思路來解決萤厅,或者遍歷的思路。
if (root!=null) {
//這種數組的方式來置換的確是沒想啊
[root.left, root.right] = [root.right, root.left];
// TreeNode toor = root;
// root.left = toor.right;
// right.right = toor.left;
mirrorTree(root.left);
mirrorTree(root.right);
}
//對root的子節(jié)點操作焚刚,返回root就行了。
return root
};
方法二:使用輔助棧(或者隊列)
- 利用棧(或隊列)遍歷樹的所有節(jié)點 nodenode 扇调,并交換每個 nodenode 的左 / 右子節(jié)點矿咕。