如何解决一旦我到达节点 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 举报,一经查实,本站将立刻删除。