static Node leftMost ( Node root ) {
  while ( root != null && root . left != null ) root = root . left ;
  return root ;
}

static Node leftMost ( Node root ) { while ( root != null && root . left != null ) root = root . left ; return root ; }
(method_declaration (modifiers) type: (type_identifier) name: (identifier) parameters: (formal_parameters (formal_parameter type: (type_identifier) name: (identifier))) body: (block (while_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (null_literal)) right: (binary_expression left: (field_access object: (identifier) field: (identifier)) right: (null_literal)))) body: (expression_statement (assignment_expression left: (identifier) right: (field_access object: (identifier) field: (identifier))))) (return_statement (identifier))))