Invert a binary tree.
4
/ 2 7
/ \ / 1 3 6 9
to
4
/ 7 2
/ \ / 9 6 3 1
将一棵二叉树进行翻转。
对每一个结点,将它的左右子树进行交换,再对它的左右子结点进行同样的操作。
树结点类
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
算法实现类
public class Solution {
public TreeNode invertTree(TreeNode root) {
if (root != null) {
invertTreeNode(root);
}
return root;
}
public void invertTreeNode(TreeNode root) {
if (root != null) {
TreeNode tmp = root.left;
root.left = root.right;
root.right = tmp;
invertTree(root.left);
invertTree(root.right);
}
}
}
点击图片,鼠标不释放,拖动一段位置,释放后在新的窗口中查看完整图片。
版权声明:本文为博主原创文章,未经博主允许不得转载。
【LeetCode-面试算法经典-Java实现】【226-Invert Binary Tree(反转二叉树)】
原文地址:http://blog.csdn.net/derrantcm/article/details/48100759