Invert Binary Tree

来源:互联网 发布:雪梨淘宝店叫什么名字 编辑:程序博客网 时间:2024/05/20 12:50

递归

/** * Definition for a binary tree node. * 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) {            return null;        }        levelInvertTree(root);        return root;    }    private void levelInvertTree(TreeNode node) {        TreeNode temp = node.left;        node.left = node.right;        node.right = temp;                if (node.left != null) {            levelInvertTree(node.left);        }        if (node.left != null) {            levelInvertTree(node.right);        }    }}


迭代

/** * Definition for a binary tree node. * 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) {            return null;        }        Queue<TreeNode> queue = new LinkedList<TreeNode>();        queue.add(root);        while (!queue.isEmpty()) {            TreeNode node = queue.poll();            TreeNode temp = node.left;            node.left = node.right;            node.right = temp;                        if (node.left != null) {                queue.add(node.left);            }            if (node.right != null) {                queue.add(node.right);            }        }        return root;    }}


0 0
原创粉丝点击