LeetCode——翻转二叉树

题目描述: 翻转一棵二叉树。

示例:

输入:

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

输出:

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

思路:使用队列进行一次深度遍历,每次将队列头节点的左右子树交换,直到队列为空。

代码如下:

public TreeNode InvertTree(TreeNode root) {
       if (root == null)
                return null;
            Queue queue = new Queue();
            queue.Enqueue(root);
            while(queue.Count>0)
            {
                TreeNode pNode = (TreeNode)queue.Dequeue();
                TreeNode temp = pNode.left;
                pNode.left = pNode.right;
                pNode.right = temp;
                if (pNode.left != null)
                    queue.Enqueue(pNode.left);
                if (pNode.right != null)
                    queue.Enqueue(pNode.right);
            }

            return root;
    }


你可能感兴趣的:(LeetCode)