[Lintcode] #175 翻转二叉树

来源:互联网 发布:windows自动修复 编辑:程序博客网 时间:2024/06/05 22:45

翻转一棵二叉树


样例

  1         1 / \       / \2   3  => 3   2   /       \  4         4

非递归:

/** * Definition of TreeNode: * public class TreeNode { *     public int val; *     public TreeNode left, right; *     public TreeNode(int val) { *         this.val = val; *         this.left = this.right = null; *     } * } */public class Solution {    /*     * @param root: a TreeNode, the root of the binary tree     * @return: nothing     */    public void invertBinaryTree(TreeNode root) {        // write your code here        if (root == null)return;Queue<TreeNode> data = new LinkedList<>();data.add(root);while (!data.isEmpty()) {TreeNode cur = data.poll();TreeNode temp = cur.left;cur.left = cur.right;cur.right = temp;if (cur.left != null)data.add(cur.left);if (cur.right != null)data.add(cur.right);}return;    }}


递归:

public class _175 {public void invertBinaryTree(TreeNode root) {if (root == null)return;TreeNode temp = root.left;root.left = root.right;root.right = temp;invertBinaryTree(root.left);invertBinaryTree(root.right);}class TreeNode {public int val;public TreeNode left, right;public TreeNode(int val) {this.val = val;this.left = this.right = null;}}}


原创粉丝点击