我有一张这样的table
----------------------------------
CUSTOMER_ID | REF_CUSTOMER_ID |
----------------------------------
1 | NULL |
2 | 1 |
3 | 2 |
4 | 2 |
5 | 3 |
6 | 3 |
7 | 4 |
8 | 4 |
9 | 1 |
----------------------------------
从该表可知,2是1的孩子,3、4是2的孩子,以此类推,这使得树看起来像这样
1
|
------------------
| |
2 9
| |
-----------
| |
3 4
| |
----- -----
| | | |
5 6 7 8
好的,在每个父节点有2个子节点和4个叶子节点之后,2有3和4的子节点和5,6,7,8的叶子节点,这棵树必须折叠,这意味着它只剩下1,但是因为2是1的子节点,3,4是1的叶子节点,而1还没有完成它的循环,所以1还不能折叠。
问题
如何仍然将2的树折叠为根,但维护1的树及其子级和叶级?如何实现这一点?是否必须创建另一个表?或者只使用现有表?
1条答案
按热度按时间yh2wf1be1#
你不必使用附加表,你可以使用递归删除树:
伪代码:
这段代码首先会遍历一棵树到底部,从底部到顶部删除节点。