由二叉树反转所想到的

来源:互联网 发布:杭州东站到淘宝城 编辑:程序博客网 时间:2024/06/05 16:35

        前段时间很火的一个话题,说的是一个面试者的被刷的故事,事实当然没有那么简单,有些事总会因为发生在不同人身上产生不同的效果,一个有影响力的开源软件作者,被知名公司拒绝了,然后在神奇的互联网的作用下,传遍全球,这也让我想起了莱温斯基的演讲,互联网真是威力无穷的大杀器,sorry,似乎扯远了。

      当时我看到这个问题时的心情,是不会告诉你的,之后就有了写这篇文章的想法,我已经预感到这会让我对整个大学的数据结构来一个彻底的反思,那会我的大学已经毕业一年多了,我想我应该,大概,可能还记得一点点吧。

     第一反应是什么是二叉树反转,你以为你我会问自己什么是二叉树吗,无知的人类,哼。我想应该是交换左右子树,每个节点都交换。然后我就就把伪代码想了一遍,打算动手去写,突然发现一个让我很尴尬的问题,我真的不太记得二叉树的结构怎么定义的了,虽然前几个月前,我由于要写树形结构把多叉树给写了一遍,这会我还是悲剧的忘了,这也是我打算也博客的一个原因,我总是再重复一些我做过的事,而且依然很费劲。于是开始了我的二叉树反转攻略的计划。

  

上图是我当时一瞬间所能想到的一切,后来发现too simple,想的和根本的不是一回事。

        我于是试着去定义节点,知道二叉树的每个节点都是是一个结构体,每个节点都包含它的左孩子节点和右孩子节点,和本身的数据,我试着用VS写了一下,发现根本就编译不过,我只好去查struct的定义方式,这让我的攻略也不得不再次扩展,而且我发现C/C++,struct的特性并不是相同的,我只能去慢慢看。


0 0