问题:给出一个二叉树,要求输出右视图
思路:因为要求输出右视图。可以考虑使用深度优先搜索或者 广度优先搜索。
使用深度优先搜索时,以非递归形式,将左右子树入栈,同时使用哈希表记录深度与对应右视图的值。如果已经存在深度对应值则不用更新。因为先左子树入栈,然后是右子树入栈,所以每次出栈访问时总是先访问右子树。
使用广度优先搜索时,将左右子树入队列,同时每次需要更新深度与对应右视图的值
具体代码参考:
https://github.com/wuli2496/OJ/tree/master/LeetCode/Binary%20Tree%20Right%20Side%20View