前言
翻转二叉树的规则:
1.将二叉树所有节点以根节点为中心进行左右交换。
实现原理
递归实现:采用后续遍历的方式交换节点。同样也可以采用前序递归的方式,必须按分层替换。所以不可以用中序递归方式。
1.递归退出条件:节点的值为空,返回null。
2.递归函数:invertTrees
具体代码实现
package test11;class TreeNode {int val;TreeNode left;TreeNode right;TreeNode() {}TreeNode(int val) { this.val = val; }TreeNode(int val, TreeNode left, TreeNode right) {this.val = val;this.left = left;this.right = right;}
}class Solution {public TreeNode invertTree(TreeNode root) {if(root==null){return null;}invertTree(root.left);invertTree(root.right);TreeNode tmp=root.left;root.left=root.right;root.right=tmp;return root;}public static void main(String[] args) {Solution solution=new Solution();TreeNode treeNode=new TreeNode(1);treeNode.left=new TreeNode(2);treeNode.left.left=new TreeNode(3);treeNode.left.right=new TreeNode(4);TreeNode newTreeNode=solution.invertTree(treeNode);}
}
QA:待定