题目:
如何查找完全二叉树最后一层的最右边的结点。
解决方案:
需要分两种情况考虑。
(1)如果完全二叉树是用数组表示的,则直接取数组的最后一个元素。
(2)如果完全二叉树是用指针表示的:
可以如下解决:
a. 从根节点开始,如果右子树存在,则每次先遍历右子树,如果右子树不存在,则访问左子树;
b. 如果右子树是叶子节点(即当前节点没有孩子节点),则该节点即所求节点;
如果右子树不存在,而左子树存在且左子树是叶子节点,则该节点为所求节点;
否则,按a继续查找。
以上算法为本人想法,如有问题或建议,欢迎讨论。