微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

一旦我到达节点 e,方法中会发生什么?因为在节点 e 上,n 是对空值的引用从 if 返回后程序会去哪里

如何解决一旦我到达节点 e,方法中会发生什么?因为在节点 e 上,n 是对空值的引用从 if 返回后程序会去哪里

             a
            / \
          b    g
         / \
        c   d
       /
      e
       \
        f    



public static Node createData() {   //this is the nodes which make up the tree structure
    
Node a = new Node( "a");
Node b = new Node( "b");
Node c = new Node( "c");
Node d = new Node( "d");
Node e = new Node( "e");
Node f = new Node( "f");
Node g = new Node( "g");           

a.left = b;  //this block of code connects the nodes to the specific tree should look
a.right = g;
b.left = c;
b.right = d;
c.left = e;
e.right = f;


public static void preOrderTraversal(Node n) { // method recursively traverses through using preOrder

if(n == null)

return;

System.out.println(n.value + " "); 

preOrderTraversal(n.left);

preOrderTraversal(n.right); 

}

//我理解a、b、c和e是如何输出的。但是,一旦我们到达节点 e,n 就是对空值的引用。那么当我们进入一个空值的方法时,进入if语句之后,我们究竟“返回”到哪里呢?就像程序现在跳转到/现在正在查看哪一行一样?一旦 n 是对空值的引用,我就很难理解该方法是如何工作的。顺便说一下,preOrder Traversal 有以下 3 个步骤:访问节点、向左遍历、向右遍历。然后递归重复

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。