讨论/《零起步学算法》 - 练习:翻转二叉树/
《零起步学算法》 - 练习:翻转二叉树
共 5 个回复

多谢指教,我改一下

2

我就是改一下Deque的API的方法(0.0)

1
class Solution {
    public TreeNode invertTree(TreeNode root) {
      if(root == null) {
        return root;
      }
      Deque<TreeNode> queue = new LinkedList<>();
      queue.offerLast(root);
      while(!queue.isEmpty()){
        //出队列
       TreeNode head = queue.pollLast();
       TreeNode leftNode = head.left;
       head.left = head.right;
       head.right = leftNode;
       if(head.left != null) {
         queue.offerLast(head.left);
       }
       if(head.right != null) {
         queue.offerLast(head.right);
       }
      }
      return root;
    }
}
1

是我弄错了,不好意思,我以为你用 Deque 是当作「栈」来用。如果 Deque 当作队列来用,你的用法没有问题。

1

「广度优先遍历」翻转二叉树,非常可以哦!

Deque 采用链表实现的话,应该对链表的「头部」操作,虽然 Java 里面的 LinkedList 是双向链表。

1