美文网首页
翻转一棵二叉树(非递归版本)

翻转一棵二叉树(非递归版本)

作者: 笑哈哈的精彩 | 来源:发表于2018-05-11 15:09 被阅读18次

    翻转一棵二叉树(非递归版本)

    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> queue = new LinkedList<TreeNode>();
            queue.offer(root);
            while(!queue.isEmpty()){
                int size = queue.size();
                for(int i = 0; i < size; i++){
                    TreeNode node = queue.poll();
                    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);
                    }
                }
            }
        }
    }
    

    解题思路:
    通过队列将每个节点的左右子节点翻转

    相关文章

      网友评论

          本文标题:翻转一棵二叉树(非递归版本)

          本文链接:https://www.haomeiwen.com/subject/xmvfdftx.html