1._226_翻转二叉树
1.1链接
https://leetcode-cn.com/problems/invert-binary-tree/
1.2题目描述
1.3解题思路
1.4代码实现
java版本
四种实现方式
package 二叉树; import java.util.LinkedList; import java.util.Queue; /** * https://leetcode-cn.com/problems/invert-binary-tree/ * @author MJ Lee * */ public class _226_翻转二叉树 { //前序遍历方法 // public TreeNode invertTree(TreeNode root) { // if (root == null) return root; // // TreeNode tmp = root.left; // root.left = root.right; // root.right = tmp; // // invertTree(root.left); // invertTree(root.right); // // return root; // } //后序遍历方法 // public TreeNode invertTree(TreeNode root) { // if (root == null) return root; // // invertTree(root.left); // invertTree(root.right); // // TreeNode tmp = root.left; // root.left = root.right; // root.right = tmp; // // return root; // } //中序遍历方法 // public TreeNode invertTree(TreeNode root) { // if (root == null) return root; // // invertTree(root.left); // // TreeNode tmp = root.left; // root.left = root.right; // root.right = tmp; // // invertTree(root.left); // // return root; // } //层序遍历方法 public TreeNode invertTree(TreeNode root) { if (root == null) return root; Queue<TreeNode> queue = new LinkedList<>(); queue.offer(root); while (!queue.isEmpty()) { TreeNode node = queue.poll(); TreeNode tmp = node.left; node.left = node.right; node.right = tmp; if (node.left != null) { queue.offer(node.left); } if (node.right != null) { queue.offer(node.right); } } return root; } }