核心代码:
int preindex = 0;
int inindex = 0;
public TreeNode buildTree(int[] preorder, int[] inorder) {
return dfs(preorder, inorder, null);
}
private TreeNode dfs(int[] preorder, int[] inorder, TreeNode finish) {
if(preindex == preorder.length || (finish != null && inorder[inindex] ==finish.val))
return null;
TreeNode root = new TreeNode(preorder[preindex++]);
root.left = dfs(preorder, inorder, root);
inindex++;
root.right = dfs(preorder, inorder, finish);
return root;
}
“root.right = dfs(preorder, inorder, finish);”中的finish理解不了
因为我认为finish只是一个形式参数,没有实参传递给它。所以我不知道finish在函数体中具体是什么。希望大佬们指导一下!!!