最近在Leetcode刷题,发现遇到不少二叉树类型的题目,题目会定义好树节点TreeNode的数据结构。
1 public classTreeNode {2 intval;3 TreeNode left;4 TreeNode right;5 TreeNode() {}6 TreeNode(int val) { this.val =val; }7 TreeNode(intval, TreeNode left, TreeNode right) {8 this.val =val;9 this.left =left;10 this.right =right;11 }12 }
在题目的示例中,二叉树的输入都是一个一维数组,表示这个二叉树结构。
例如:
输入:root = [3,1,4,3,null,1,5]
表示的二叉树为:
因此在IDE里面编码调试时,需要一个转化方法方便自己编写并运行测试用例。
简单分析数组和二叉树之间的关系:
输入:root = [1,2,3,4,5,6,7,8,9]
第i个节点的左子节点为第2*i个节点,右子节