A Polynomial Time Algorithm for Finding A Hamilton Cycle in An Undirected Graph with Maximum Degree of Three