题目描述:
给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。
题目链接:LeetCode-226-翻转二叉树
解题思路:先想清楚用哪种遍历顺序:前序和后序更好一点。
代码实现:
class Solution {
// 交换指的是交换 左右的指针
public TreeNode invertTree(TreeNode root) {
if (root==null){
return root;
}
// 交换 root的左右孩子
swapTreeNode(root);
// 这里采用前序遍历的顺序:中左右
invertTree(root.left);
invertTree(root.right);
return root;
}
private TreeNode swapTreeNode(TreeNode node){
// 注意,交换的是指针,而不是具体的val
TreeNode tmp=node.left;
node.left=node.right;
node.right=tmp;
return node;
}
}