【leetcode】【226】Invert Binary Tree

一、問題描述

Invert a binary tree.

     4
   /   \
  2     7
 / \   / \
1   3 6   9
to
     4
   /   \
  7     2
 / \   / \
9   6 3   1

二、問題分析

首先對於樹的遍歷而言往往採用遞歸的方式。大部分類型的題目都涉及遍歷,只不過在遍歷的時候進行相應的處理。這道題也是,從根節點出發,如果有左右孩子就交換一下,然後遞歸遍歷做孩子、右孩子。

三、Java AC代碼

public TreeNode invertTree(TreeNode root) {
        invert(root);
        return root;
    }
	public void invert(TreeNode node){
		if (node!=null && (node.left!=null || node.right != null)) {
			TreeNode tmp = node.left;
			node.left = node.right;
			node.right = tmp;
		}else {
			return ;
		}
		invert(node.left);
		invert(node.right);
	}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章