书中的举例如下:我写的代码是:/**
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
public class Solution {
public void Mirror(TreeNode root) {
while(root.left!=null||root.right!=null){
TreeNode rootLeft = root.left;
TreeNode rootRight = root.right;
root.left = rootRight;
root.right = rootLeft;
while(root.left!=null){
System.out.println(root.left.val);
Mirror(root.left);
}
while(root.right!=null){
System.out.println(root.right.val);
Mirror(root.right);
}
}
}
}结果一直输出11 跳不出循环 请问是为什么呢?
1 回答
已采纳
Caballarii
TA贡献1123条经验 获得超629个赞
while(root.left!=null||root.right!=null){
这句话是死循环啊,因为判断条件永远为真啊
既然用了递归,就不需要再递归里面再循环了,把所有的while换成if就行了
添加回答
举报
0/150
提交
取消