类的中序遍历逻辑和二叉树的中序遍历逻辑一模一样,即
先递归访问左子树
再访问根节点
最后递归访问右子树
但在面向对象设计中,我们设计类内的递归函数会遇到一个问题,就是类对象调用其成员函数的递归传参问题...:
我们知道C语言完成中序遍历函数时一个参数是恰好可以满足首次调用和递归调用时传参的形式的:
但是在面向对象语言中,这个参数是不好处理的,因为首次调用时不需要传参...,类对象调用成员函数会默认传this指针,所以不需要传参数,但后续递归调用又需要传参数,这就导致这个函数参数有也不对,没有也不对:
所以好的解决方式是将递归主体封装成子函数,代替成员函数进行递归操作...(不管右孩子)
待删除结点只有右孩子结点(不管左孩子)
待删除结点左,右孩子结点都有
在实际删除操作中,可以将1和2 / 3合并起来,因为我们的逻辑是哪边有孩子就管理,没有孩子就可以不管...一个孩子 托孤
//3.