来源
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/invert-binary-tree/
描述
翻转一棵二叉树。
输入:
4
/ \
2 7
/ \ / \
1 3 6 9
题解
递归版
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/class Solution {public TreeNode invertTree(TreeNode root) {if (root == null) {return null;}TreeNode left = invertTree(root.left);TreeNode right = invertTree(root.right);root.left = right;root.right = left;return root;}}
迭代版
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/class Solution {public TreeNode invertTree(TreeNode root) {if (root == null) {return null;}Queue<TreeNode> queue = new LinkedList<>();queue.add(root);while (!queue.isEmpty()) {TreeNode current = queue.poll();TreeNode temp = current.left;current.left = current.right;current.right = temp;if (current.left != null) {queue.add(current.left);}if (current.right != null) {queue.add(current.right);}}return root;}}
