Unity C# lean script not working properly

Hello all!
I recently adapted a JS from a Unity thread into C# for a Amnesia/Outlast style camera lean, and I’ve run into an error.

While it does work, whenever I load into the game, the player is slanted to the left, and remains there - even after I hit the E key multiple times. My script is as follows

	public float leanAngle = 35.0f;
	public float leanSpeed = 5.0f;
	public float leanBackSpeed = 6.0f;

	// Use this for initialization
	void Start () 
	{
		LeanBack();
	}
	
	// Update is called once per frame
	void Update () 
	{
		if(Input.GetKeyDown(KeyCode.Q))
		{
			LeanLeft();
		}

		else if (Input.GetKeyDown(KeyCode.E))
		{
			LeanRight();
		}

		else
		{
			LeanBack();
		}
	}

	void LeanLeft()
	{
		float currAngle = transform.rotation.eulerAngles.z;
		float targetAngle = leanAngle;

		if(currAngle > 180.0f)
		{
			currAngle = 360.0f - currAngle;
		}

		float angle = Mathf.Lerp(currAngle, targetAngle, leanSpeed * Time.deltaTime);
		Quaternion rotAngle = Quaternion.Euler(transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y, angle);
		transform.rotation = rotAngle;
	}

	void LeanRight()
	{
		float currAngle = transform.rotation.eulerAngles.z;
		float targetAngle = leanAngle - 360.0f;

		if(currAngle > 180.0f)
		{
			targetAngle = 360.0f - leanAngle;
		}

		float angle = Mathf.Lerp(currAngle, targetAngle, leanSpeed * Time.deltaTime);
		Quaternion rotAngle = Quaternion.Euler(transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y, angle);
		transform.rotation = rotAngle;
	}

	void LeanBack()
	{
		float currAngle = transform.rotation.eulerAngles.z;
		float targetAngle = leanAngle + 0.0f;

		if(currAngle > 180.0f)
		{
			targetAngle = 360.0f;
		}

		float angle = Mathf.Lerp(currAngle, targetAngle, leanSpeed * Time.deltaTime);
		Quaternion rotAngle = Quaternion.Euler(transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y, angle);
		transform.rotation = rotAngle;
	}
}

What am I doing wrong here? Any help is appreciated greatly!

if(currAngle > 180.0f)
{
targetAngle = 360.0f - leanAngle;
}

Smth wrong here…
I guess it should be like this in all LeanXXX functions:

if(targetAngle > 180.0f)
{
  targetAngle = 360.0f - targetAngle;
}