最开始的思路是中序遍历,把遍历得到的节点一次插入到ArrayList中,然后再进行处理。
但是一般树的处理都可以用遍历解决,遍历在很大程度上都会简化思路,简化代码,所以最好用遍历来解决。
class Node {
int val;
Node right;
Node left;
}
public class Solution {
public Node tow (Node root) {
if (root == null)
return null;
Node left = tow(root.left);
while (left.right != null)
left = left.right;
left.right = root;
root.left = left;
Node right = tow(root.right);
root.right = right;
right.left = root;
return left;
}
}