Kara walks from left to right and from right to left, alternatively, and "inverts" the current row of the image. The main program is the following:

boolean walkingLeft2Right = true;

while (!( kara.treeFront() && 
          (kara.treeLeft() || kara.treeRight()) )) {
  if (walkingLeft2Right) {
    left2right();
  }
  else {
    right2left();
  }
  walkingLeft2Right = !walkingLeft2Right;
}