JZ18 二叉树的镜像,递归&迭代

二叉树的镜像

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

解法一:递归

public class Solution {
    public void Mirror(TreeNode root) {
        root=reverse(root);
    }

    TreeNode reverse(TreeNode root){
        if(root==null) return root;
        TreeNode t=root.left;
        root.left=reverse(root.right);
        root.right=reverse(t);
        return root;
    }
}

解法二:迭代

import java.util.*;
public class Solution {
    public void Mirror(TreeNode root) {
        if(root==null) return;
        LinkedList<TreeNode> q=new LinkedList<>();
        q.add(root);
        while(!q.isEmpty()){
            TreeNode curr=q.poll();
            if(curr.left!=null) q.add(curr.left);
            if(curr.right!=null) q.add(curr.right);
            TreeNode t=curr.left;
            curr.left=curr.right;
            curr.right=t;
        }
    }
}
全部评论

相关推荐

05-13 00:41
已编辑
北京邮电大学 Java
理性的杰克刷牛客:ai肯定要有的,最好学一下agent方向加一个智能客服什么的进去,并且多加点什么skill,mcp啥的,另外你现在的项目深度有些浅,这些功能都太简单了,而且也不是真正能扛高并发的实现,没有什么太大的亮点,可以去网上找点更有深度的项目。可以先投一些中小厂,有实习经历以后再去大厂,你现在这个大厂可能机会不大
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务