思路:先中序遍历得到排好序的节点,然后组成链表就好了。
List<TreeNode> list = new ArrayList<>();
public TreeNode Convert(TreeNode pRootOfTree) {
getSortedNode(pRootOfTree);
for(int i = 0; i < list.size() - 1; i++){
list.get(i).right = list.get(i + 1);
list.get(i + 1).left = list.get(i);
}
return list.get(0);
}
private TreeNode getSortedNode(TreeNode root){
if(root==null) return null;
getSortedNode(root.left);
list.add(root);
getSortedNode(root.right);
return root;
}
京公网安备 11010502036488号