评价

中等

题目

Given a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to bottom.

Example:

题目理解

想象自己对这棵二叉树从右往左看,记录下能看到的数字。

解析

利用DFS算法的右子树优先,对于每个节点,在右子树得到的结果基础上,加上左子树的多余出来的部分(比右子树长的部分),这些代表了没有被遮住的部分。

自己写的代码

对于每个节点,如果为空,则返回,否则就分别对其左子树和右子树进行递归,记录下右子树的结果,再将左子树多余出来的部分加到右子树的结果后面,将结果返回便可。

别人写的代码

他没有使用数组去存储临时的量,而是利用了对数组的引用,应该会更加快,剩下了生成数组的时间。

运行时间

01-20 00:21