public List<Integer> dfs(TreeNode root)
{
List<Integer> list = new ArrayList<>();
Stack<TreeNode> stack = new Stack<>();
if(root == null)
return list;
stack.push(root);
while(!stack.isEmpty())
{
TreeNode t = stack.pop();
if(t.right != null)
stack.push(t.right);
if(t.left != null)
stack.push(t.left);
list.add(t.val);
}
return list;
}