垂直遍历二叉树(java版)
看到有的博客用使用C++写的,但是没有java版本的,所以在这里做一个补充。 import baseclass.TreeNode; import javafx.util.Pair; import java.util.*; /** * 垂直遍历二叉树 */ public class straightTree { public static void main(String[] args){ //这里的TreeNode是自己定义的一个树节点的类 TreeNode head = new TreeNode(1); TreeNode node1 = new TreeNode(2); // TreeNode node2 = new TreeNode(3); head.left = node1; // head.right = node2; //queue用于存放相同“数值”(后面会将是什么东西)和TreeNode,就是平时的层次遍历 Queue<Pair<Integer,TreeNode>> queue = new LinkedList<>(); //set用来顺序存放“数值”,方便后面的遍历 Set<Integer> set = new TreeSet<>(); //key是“数值”,value是TreeNode Pair pair = new Pair(0,head);