劍指offer 對稱的二叉樹(思維)

2021-10-06 09:54:58 字數 795 閱讀 7236

請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。

解題思路:

正規的解法是傳入兩個節點,然後判斷它們是不是對稱的。因為按照對稱二叉樹的定義,就是需要一層一層判斷是否是對稱的。

/*

struct treenode

};*/

class solution

bool issymmetrical(treenode* proot)

};

第二種做法就是,通過觀察,我們可以檢視葉子節點是否映象對稱即可。需要用到一點回溯。

/*

struct treenode

};*/

class solution

if(mv[n].first == 0)

}else if(root->left && root->left->val == mv[n].second)check(root->left,n+1);

}void dfs(treenode * root));

dfs(root->left);

mv.pop_back();

}if(root->right));

dfs(root->right);

mv.pop_back();

}if(root->left == null && root->right == null)

}bool issymmetrical(treenode* proot)

};

劍指Offer 二叉樹 對稱的二叉樹

含有兩道題,都從樹的遞迴入手 請完成乙個函式,輸入乙個二叉樹,該函式輸出它的映象。解題思路 映象翻 只需要遍歷二叉樹,每次訪問乙個結點時,交換其左右子樹。實現 definition for a binary tree node.class treenode def init self,x self....

劍指offer 對稱的二叉樹

請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。思路 複製一顆二叉樹,在該二叉樹的基礎上求得二叉樹的映象,同時遍歷兩顆二叉樹,判斷每乙個節點是否相同。public class solution private treenode copy ...

劍指offer 對稱的二叉樹

請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。遞迴 coding utf 8 class treenode def init self,x self.val x self.left none self.right none class ...