/**
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
public class Solution {
public TreeNode head = null;
public TreeNode end = null;
public TreeNode Convert(TreeNode pRootOfTree) {
invert(pRootOfTree);
return head;
}
private void invert(TreeNode node) {
if (node == null) return;
invert(node.left);
if (end == null) {
head = node;
end = node;
} else {
// 拼接到end的右侧,建立双向关联
end.right = node;
node.left = end;
end = node;
}
invert(node.right);
}
}
解题思想:递归中序遍历

京公网安备 11010502036488号