代碼演示:
package swordfingeroffer;
import java.util.ArrayList;
import java.util.List;
public class InterviewQuestion54 {
public TreeNode kthNode(TreeNode root, int k) {
if (null == root || k <= 0) {
return null;
}
List<TreeNode> cache = new ArrayList<>();
kthNodeHelper(root, k, cache);
return k <= cache.size() ? cache.get(k - 1) : null;
}
private void kthNodeHelper(TreeNode root, int k, List<TreeNode> cache) {
if (null == root) {
return;
}
kthNodeHelper(root.left, k, cache);
cache.add(root);
if (cache.size() == k) {
return;
}
kthNodeHelper(root.right, k, cache);
}
}