如何查找完全二叉树最后一层的最右边的结点

题目:

如何查找完全二叉树最后一层的最右边的结点。

 

解决方案:

需要分两种情况考虑。

(1)如果完全二叉树是用数组表示的,则直接取数组的最后一个元素。

(2)如果完全二叉树是用指针表示的:

可以如下解决:

a. 从根节点开始,如果右子树存在,则每次先遍历右子树,如果右子树不存在,则访问左子树;

b. 如果右子树是叶子节点(即当前节点没有孩子节点),则该节点即所求节点;

如果右子树不存在,而左子树存在且左子树是叶子节点,则该节点为所求节点;

否则,按a继续查找。

 

以上算法为本人想法,如有问题或建议,欢迎讨论。

版权声明:本文为博主原创文章,未经博主允许不得转载。

posted @ 2012-08-28 22:36  wangicter的博客  阅读(1357)  评论(0)    收藏  举报