题解 | #翻转牛群结构#
翻转牛群结构
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;
    }
}

