获得徽章 0
- 【leetcode 第100题】相同的树:
leetcode-cn.com
实现思路:
一、递归,如图1
执行结果:
✔ Accepted
✔ 57/57 cases passed (84 ms)
✔ Your runtime beats 38.34 % of javascript submissions
✔ Your memory usage beats 49.24 % of javascript submissions (33.6 MB)
二、使用栈,如图2
执行结果:
✔ Accepted
✔ 57/57 cases passed (84 ms)
✔ Your runtime beats 38.34 % of javascript submissions
✔ Your memory usage beats 39.77 % of javascript submissions (33.7 MB)
三:递归,如图3
执行结果:
✔ Accepted
✔ 57/57 cases passed (68 ms)
✔ Your runtime beats 92.85 % of javascript submissions
✔ Your memory usage beats 43.94 % of javascript submissions (33.7 MB)
提问:
1、为什么图3的递归会比图1的递归执行速度快呢?
如有错误或者建议,请指出,谢谢展开评论2 - 【leetcode 第101题】对称二叉树:
leetcode-cn.com
实现思路:
一、递归,如图1,isMirror(t1.right, t2.left) &&isMirror(t1.left, t2.right) 这行代码利用了镜像原理,比如人站在镜子面前,判断真实的你的左手是否是镜子中的右手,画了两个图感受一下,如图2和图3
执行结果:
✔ Accepted
✔ 195/195 cases passed (84 ms)
✔ Your runtime beats 85.22 % of javascript submissions
✔ Your memory usage beats 33.44 % of javascript submissions (35.5 MB)
二、迭代法,如图4,复制一个树结构放到数组里面,同时比较两个节点值,如果节点相同,再把两个节点的左右子节点按照相反的顺序添加到数组中去,再次循环比较。当比较结果不相等时,返回 false
执行结果:
✔ Accepted
✔ 195/195 cases passed (88 ms)
✔ Your runtime beats 73.78 % of javascript submissions
✔ Your memory usage beats 37.62 % of javascript submissions (35.5 MB)
如有错误或者建议,请指出,谢谢展开评论5 - 【leetcode 第104题】二叉树的最大深度:
leetcode-cn.com
实现思路:
一、递归,如图1,递归被调用一次,则加一,左节点和右节点递归结果中取最大值,则计算出最大深度
执行结果:
✔ Accepted
✔ 39/39 cases passed (84 ms)
✔ Your runtime beats 92.18 % of javascript submissions
✔ Your memory usage beats 6.18 % of javascript submissions (37.6 MB)
二、迭代,如图2
执行结果:
✔ Accepted
✔ 39/39 cases passed (116 ms)
✔ Your runtime beats 15.65 % of javascript submissions
✔ Your memory usage beats 83.92 % of javascript submissions (36.9 MB)
如有错误或者建议,请指出,谢谢展开22