import java.util.LinkedList;
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) {
val = x;
}
TreeNode(int x, TreeNode left, TreeNode right) {
this.val = x;
this.left = left;
this.right = right;
}
}
public class Solution {
public TreeNode invertTree(TreeNode root) {
if (root == null)
return null;
TreeNode temp = root.left;
root.left = root.right;
root.right = temp;
invertTree(root.left);
invertTree(root.right);
return root;
}
public TreeNode invertTree2(TreeNode root) {
if (root == null)
return null;
LinkedList<TreeNode> queue = new LinkedList<>();
queue.add(root);
TreeNode node, temp;
while (!queue.isEmpty()) {
node = queue.poll();
temp = node.left;
node.left = node.right;
node.right = temp;
if (node.left != null)
queue.add(node.left);
if (node.right != null)
queue.add(node.right);
}
return root;
}
public static void main(String[] args) {
TreeNode _15 = new TreeNode(15);
TreeNode _7 = new TreeNode(7);
TreeNode _9 = new TreeNode(9);
TreeNode _20 = new TreeNode(20, _15, _7);
TreeNode _3 = new TreeNode(3, _9, _20);
TreeNode invertedTree = new Solution().invertTree(_3);
System.out.println(invertedTree);
}
}
二叉树交换左右节点
最新推荐文章于 2023-04-05 16:09:31 发布