使用morris遍历记录一下所有的节点
提交代码
class Solution {
public int kthSmallest(TreeNode root, int k) {
TreeNode cur=root,next=root;
ArrayList<Integer> values=new ArrayList<>();
while(cur!=null) {
if(cur.left==null) {
values.add(cur.val);
cur=cur.right;
}else {
next=cur.left;
while(next.right!=null&&next.right!=cur)
next=next.right;
if(next.right==null) {
next.right=cur;
cur=cur.left;
}else {
values.add(cur.val);
cur=cur.right;
next.right=null;
}
}
}
return values.get(k-1);
}
}