226. Invert Binary Tree

来源:互联网 发布:淘宝热销商品分析 编辑:程序博客网 时间:2024/06/07 00:01

问题: Invert a binary tree.

     4   /   \  2     7 / \   / \1   3 6   9    to     4   /   \  7     2 / \   / \9   6 3   1

问题分析:把二叉树的每个结点的左右两个子结点都进行交换,用递归进行处理。注意当两个子结点中的其中一个为空结点也要进行互换。

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */class Solution {    public TreeNode invertTree(TreeNode root) {                            if(root == null) return root;                            TreeNode exch;                            if(root.left != null || root.right != null){                                exch = root.right;                                root.right = root.left;                                root.left = exch;                            }                            else return root;                            root.left = invertTree(root.left);                            root.right = invertTree(root.right);                            return root;    }}
原创粉丝点击