先序遍歷:根左右
中序遍歷:左根右
後序遍歷:左右根
//定義二叉樹
public class Node {
int val;
Node left;
Node right;
Node(int data) {
this.val = data;
//先序遍歷
public static void preOrderRecur(Node head) {
if(head ==null)
return;
System.out.print(head.val+" ");
preOrderRecur(head.left);
preOrderRecur(head.right);
}
//中序遍歷
public static void inOrderRecur(Node head) {
if (head == null) {
return;
}
inOrderRecur(head.left);
System.out.print(head.val+" ");
inOrderRecur(head.right);
}
//後序遍歷
public static void posOrderRecur(Node head) {
if (head == null) {
return;
}
posOrderRecur(head.left);
posOrderRecur(head.right);
System.out.print(head.value + " ");
}
遞歸版本沒什麼好解釋的啦。。。
只要記得當遍歷到根節點時進行打印操作就行了,左右就直接進行遞歸。