评价
中等
题目
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算法的右子树优先,对于每个节点,在右子树得到的结果基础上,加上左子树的多余出来的部分(比右子树长的部分),这些代表了没有被遮住的部分。
自己写的代码
对于每个节点,如果为空,则返回,否则就分别对其左子树和右子树进行递归,记录下右子树的结果,再将左子树多余出来的部分加到右子树的结果后面,将结果返回便可。
别人写的代码
他没有使用数组去存储临时的量,而是利用了对数组的引用,应该会更加快,剩下了生成数组的时间。