關於ie瀏覽器不支援es6的模板字串
阿新 • • 發佈:2021-01-09
##【演算法日記-二叉樹的映象】
請完成一個函式,輸入一個二叉樹,該函式輸出它的映象。
例如輸入:
4
/ \
2 7
/ \ / \
1 3 6 9
映象輸出:
4
/ \
7 2
/ \ / \
9 6 3 1
這波很香~
遞迴程式碼
public TreeNode mirrorTree(TreeNode root) {
if(root == null) return null;
//一直找到最底層的左節點,再回到上層與同層的右節點交換
//一直遞迴,直到回到根節點
mirrorTree(root.left);
mirrorTree(root.right);
TreeNode temp = root.left;
root.left = root.right;
root.right = temp;
return root;
}
利用棧的程式碼
public TreeNode mirrorTree(TreeNode root) {
if(root == null) return null;
Stack< TreeNode> stack = new Stack<>();
stack.push(root);
while(!stack.isEmpty()){
TreeNode node = stack.pop();
if(node.left != null) stack.push(node.left);
if(node.right != null) stack.push(node.right);
TreeNode temp = node.left;
node. left = node.right;
node.right = temp;
}
return root;
}