最近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;
}
那么这两段代码的区别在什么呢。我陷入了沉思,而且看了看运行时间来说,第二种反而更加耗时间
大家有没有思路呢?
嘻嘻嘻,不卖关子啦
这样看完你有没有更加理解一点呢
那是因为 第二种判断的条件更多了一些,这也就是为什么第二种写法会更加耗时。