镜像二叉树

二叉树的镜像

http://www.nowcoder.com/questionTerminal/564f4c26aa584921bc75623e48ca3011

手动压栈

import java.util.Stack;
public class Solution {
  public void Mirror(TreeNode root) {

    // 空树
    if (root == null) {
      return;
    }
    // 左右均为空
    if (root.left == null && root.right == null) {
      return;
    }

    // 用来遍历的栈
    Stack<TreeNode> stack = new Stack<TreeNode>();

    stack.push(root);

    TreeNode curNode;
    TreeNode tempNode;

    // 深度优先
    while (!stack.isEmpty()) {
      curNode = stack.pop();
      if(curNode == null) {
        continue;
      }
      if(curNode.left == null && curNode.right==null) {
        continue;
      }
      // 交换
      tempNode = curNode.left;
      curNode.left = curNode.right;
      curNode.right = tempNode;
      stack.push(curNode.left);
      stack.push(curNode.right);
    }
  }
}
全部评论
不太看得懂呀,博主,可以再说详细一点嘛,谢谢 小白一个
点赞 回复 分享
发布于 2020-02-15 14:01
把root压入栈是怎么压入的,得到一个栈,栈里面又是怎么存储的呢 ?
点赞 回复 分享
发布于 2020-02-15 14:03
请问下这个是深度优先还是广度优先啊?看起来是一层一层去遍历
点赞 回复 分享
发布于 2020-07-15 21:55

相关推荐

11-18 09:44
Java
小白也想要offer:简历别放洋屁,搞不还还放错了,当然你投外企除外,以上纯属个人观点
点赞 评论 收藏
分享
09-27 18:15
门头沟学院 C++
在努力的小牛:来告诉你 录用评估挂就是同期好几个候选人,部门负责人选了其他人。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
13 1 评论
分享
牛客网
牛客企业服务