首先是中序遍历
其次记住这是要做成double list。
从第8行到13行,是对node和prev做连接,14行是先保存要访问的下一个结点,15,16行是对node和head做连接,因为这是double list,最后更新prev。
TreeNode head, prev;
private void traverse(TreeNode node){
if (node == null) {
return;
}
traverse(node.left);
node.left = prev;
if (prev != null) {
prev.right = node;
} else {
head = node;
}
TreeNode right = node.right;
node.right = head;
head.left = node;
prev = node;
traverse(right);
}