leetcode(62).226. Invert Binary Tree

来源:互联网 发布:tensorflow版本查看 编辑:程序博客网 时间:2024/04/27 18:30

题意;将一个二叉树左右翻转。

初步分析:

其实就是交换左右子树嘛,遍历的过程中交换就好了(除了叶子节点)。

/** * 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();        queue.offer(root);        while(!queue.isEmpty())        {            TreeNode node = queue.poll();            if(node.left != null || node.right != null) //不是叶子节点就反转它            {                TreeNode temp = node.left;  //交换操作                node.left = node.right;                node.right = temp;                if(node.left != null)                    queue.offer(node.left);  //不是空节点的都进去,有被处理的可能(不是叶子结点的前提下)                if(node.right != null)                    queue.offer(node.right);            }        }        return root;    }}



0 0
原创粉丝点击