题解 | #翻转牛群结构#
翻转牛群结构
https://www.nowcoder.com/practice/f17e1aa5329f492f9107cbe303222ad6
知识点:二叉树,递归
这道题题解很简单就可以实现,主要的难度在于思路上,如果有了思路,这道题就可以很简单的解决。
若想将一个二叉树进行反转,其实很简单,无非是将其左右节点进行反转,也就是使用一个临时节点,将左右节点交换即可。其中的一个问题在于左右子树的结构也需要进行反转的操作,故我们可以直接递归地调用该反转函数,直至到达叶子节点。
Java题解如下:
import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * public TreeNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param root TreeNode类 * @return TreeNode类 */ public TreeNode invertTree (TreeNode root) { // write code here if(root == null || root.left == null && root.right == null) { return root; } TreeNode tmp = invertTree(root.left); root.left = invertTree(root.right); root.right = tmp; return root; } }