本文共 593 字,大约阅读时间需要 1 分钟。
翻转一棵二叉树
问题描述:翻转一棵二叉树,交换其左右子树的位置,并对各子树递归进行翻转。
示例描述:输入二叉树和输出翻转后的结果,观察左右子树的位置是否交换,各子树是否也完成了翻转。
解题思路:使用递归的方法来实现二叉树的翻转。具体而言,首先交换根节点的左右子树,然后对左右子树分别递归进行翻转操作,直到左右子树为空为止。
代码实现:
class Solution { public TreeNode invertTree(TreeNode root) { if (root != null) { // 交换左右子树 TreeNode temp = root.left; root.left = root.right; root.right = temp; // 递归翻转左右子树 invertTree(root.left); invertTree(root.right); } return root; }} 这个递归方法主要做了以下几件事情:首先,根节点的左右子树位置被交换了;然后,递归调用左侧和右侧子树,继续对它们进行同样的翻转操作。这种方法确保了整个二叉树的翻转完成。
转载地址:http://uhgyk.baihongyu.com/