问一个树的逆遍历

需求是这样的
        1
    2        3
  4  5    6  7
8                9

 

 

 假如有这样一棵树,非二叉
开始是前序遍历  845269731
然后假如有次访问到了 7了 我想回复之前的访问状态,但只恢复到5,挨个把之前被访问的节点的是否访问设置成false
要达到这样的话,访问就必须以  79625 的顺序来访问并设置,做了每半天没做出来

2个回答

再作一次遍历即可,访问到5时设定开始标志,访问到7时结束,开始与结束之间访问的节点设置成false。

看看能不能满足需求

算法思想:
无论何种遍历,首先第一步逻辑是必须,遍历到每一个节点。

也即是递归。而递归有一个if作为结束条件。

1.你所提问的问题的逻辑,不要写在结束条件的逻辑里。
2.除了叶子节点外,其他节点在递归过程都会访问2次。这个刚可以完成你的需求:(挨个把之前被访问的节点的是否访问设置成false )
3.善用成员变量-(实际上是所谓一个类里边的全局变量来使用)。

LZ的需求只要注意我提的三点,出功能不是难事,所写几次多测几次吧。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!