解决在链表中使用的递归输出

时间:2018-08-17 14:02:05

标签: java recursion

为了给我的考试做准备,我得到了以下内容:

  1. 具有可执行静态static main的Java类,如下所示:

    .wrapper{
        position:relative;
    }
    .condition-button-group {
       right:0;
       top:0;
    }
    

2)此处描述的一组数据:tree diagram

如果我要给出点2的数据树作为参数,则需要确定点1的应用在Standard-Out上的输出。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

要引导您完成该过程的开始,此处的逻辑如下:您从调用mystery(1)开始。由于1 <2,因此您输入第一个if语句并运行myst​​ery(root.left),在此图中为mystery(3)。由于3是偶数且大于2,因此跳过第一个if语句并打印出3。然后输入第二个if语句并调用mystery(2)。这将输入第一个if语句(作为其偶数)并调用mystery(9)。首先打印9,然后由于9为奇数,所以输入第二个if语句并尝试调用mystery(9.right)。由于节点为null,因此立即返回,并且此处的递归开始展开。它再次打印9,然后您跳回mystery(2)调用并打印两次2(对于if语句之后的每个print语句,一次)。

这将继续展开,您可以遍历整个过程,但是要注意的重要一点是,每个节点在被调用时将打印两次,而问题仅在于它何时打印。还必须指出,某些调用会同时进入两个if语句,例如当其偶数大于3时。