题目:
反转一个二叉树,即左右节点相互调换位置
解题思路
遇到二叉树会想到用递归去解决,考虑把左节点的值和右节点进行调换
1,除掉边缘case
private TreeNode invertTree(TreeNode node) {
if (node == null) return null;
}
2,左右节点调换,用变量替换的方式,类似指针指向变更的操作
private TreeNode invertTree(TreeNode node) {
if (node == null) return null;
TreeNode temp = node.getLeft(); // 临时node
node.left = node.right; // 把右的值给左
node.right = temp; // 临时的值也就是左的值给右
}
3,最后通过递归把左和右传入递归中,并返回结果
private TreeNode invertTree(TreeNode node) {
if (node == null) return null;
TreeNode temp = node.getLeft(); // 临时node
node.left = node.right; // 把右的值给左
node.right = temp; // 临时的值也就是左的值给右
invertTree(node.left);
invertTree(node.right);
return node;
}