时间:2025-08-05 09:00
人气:
作者:admin
操作给定的⼆叉树,将其变换为源⼆叉树的镜像。
⼆叉树的镜像定义:源⼆叉树

采用后序遍历(左-右-根)的方式递归访问每个节点:
public TreeNode mirrorTree(TreeNode root) {
if (root == null) return null;
// 先递归处理子树
TreeNode left = mirrorTree(root.left);
TreeNode right = mirrorTree(root.right);
// 再交换左右子树
root.left = right;
root.right = left;
return root;
}
或者采用前序遍历(根-左-右)的方式递归访问每个节点:
public TreeNode mirrorTree(TreeNode root) {
if (root == null) {
return null;
}
// 交换左右子树
TreeNode temp = root.left;
root.left = root.right;
root.right = temp;
// 递归处理左右子树
mirrorTree(root.left);
mirrorTree(root.right);
return root;
}
利用队列实现广度优先搜索(BFS):
public TreeNode mirrorTree(TreeNode root) {
if (root == null) return null;
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
while (!queue.isEmpty()) {
TreeNode node = queue.poll();
// 交换左右子树
swap(node);
// 将子节点加入队列
if (node.left != null) queue.offer(node.left);
if (node.right != null) queue.offer(node.right);
}
return root;
}
public void swap(TreeNode root) {
TreeNode temp = root.left;
root.left = root.right;
root.right = temp;
}
本文来自在线网站:seven的菜鸟成长之路,作者:seven,转载请注明原文链接:www.seven97.top
下一篇:网关升级