标签:判断 linked blog title lin ref list 示例 二叉树
实现二叉树的反转
示例:
原二叉树:
4 / 2 7 / \ / 1 3 6 9
反转后的二叉树:
4 / 7 2 / \ / 9 6 3 1
1.判断根是否为空,根为空直接返回根;否则继续;
2.递归反转根的左右子树
1.判断根是否为空,根为空直接返回根;否则继续;
2.交换根节点的左右子节点;
3. 交换第二层结点的左右子树;
4 重复下去,最后一个结点。
public TreeNode invertNode(TreeNode root) { if(root==null) return root; TreeNode temp=root.left; root.left=invertNode(root.right); root.right=invertNode(temp); return root; }
public TreeNode invertNode(TreeNode root) { if(root==null) return null; Queue<TreeNode> queue=new LinkedList<TreeNode>(); queue.add(root); while(queue!=null){ TreeNode current=queue.poll(); TreeNode temp=current.left; current.left=current.right; current.right=temp; if(current.left!=null) queue.add(current.left); if(current.right!=null) queue.add(current.right); } return root; }
标签:判断 linked blog title lin ref list 示例 二叉树
原文地址:https://www.cnblogs.com/fanguangdexiaoyuer/p/10727148.html