加了一个判断减少递归次数
import java.util.ArrayList; public class Solution { ArrayList<TreeNode> list = new ArrayList(); TreeNode KthNode(TreeNode pRoot, int k){ if( pRoot == null || k == 0 ) return null; toLDR(pRoot, k); if( k>=1 && list.size() >= k ) return list.get(k-1); return null; } public void toLDR( TreeNode node, int k){ if( node != null ) { // 通过此处判断减少递归次数 if ( list.size() >= k ) return ; toLDR( node.left, k ); list.add( node ); toLDR( node.right, k ); } } }