剑指offer:二叉树的镜像 为什么我的while循环成了死循环呢?
书中的举例如下:
我写的代码是:
/**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 跳不出循环 请问是为什么呢? |
免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。
版权声明:作者保留权利,不代表天盟立场。
|
|
|
|
while(root.left!=null||root.right!=null){这句话是死循环啊,因为判断条件永远为真啊
既然用了递归,就不需要再递归里面再循环了,把所有的while换成if就行了 |
|
|
|
|