二叉树刷题有感

最近n刷二叉树的题目

var postorderTraversal = function(root) {
    let res=[];
    const dfs=function(root){
        if(root===null){
            return;
        }
        
        dfs(root.left);
        dfs(root.right);
        res.push(root.val);
    }
    dfs(root);
    return res;
};

相信这段代码大家应该不陌生了,就是一个简单的递归后序遍历二叉树
不过里面判断递归出去的条件

if(root===null){
   return;
}

这段代码我有了一些感受,如果写成以下这种情况,也是没问题的

if(!root){
   return;
}

那么这两段代码的区别在什么呢。我陷入了沉思,而且看了看运行时间来说,第二种反而更加耗时间
在这里插入图片描述

大家有没有思路呢?

嘻嘻嘻,不卖关子啦
在这里插入图片描述
这样看完你有没有更加理解一点呢
那是因为 第二种判断的条件更多了一些,这也就是为什么第二种写法会更加耗时。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值