您好,登錄后才能下訂單哦!
這篇文章主要介紹“PHP怎么實(shí)現(xiàn)鏡像二叉樹”,在日常操作中,相信很多人在PHP怎么實(shí)現(xiàn)鏡像二叉樹問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對(duì)大家解答”PHP怎么實(shí)現(xiàn)鏡像二叉樹”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
操作給定的二叉樹,將其變換為源二叉樹的鏡像。 二叉樹的鏡像定義:源二叉樹 / \ 10 / \ / \ 7 9 11 鏡像二叉樹 / \ 6 / \ / \ 9 7 5 思路: 1.左子樹賦給temp 2.temp賦給右子樹 3.右子樹賦給左子樹 4.遞歸 mirror(root) temp=root->left root->left=root->right root-right=temp mirror(root->left) mirror(root->right) class TreeNode{ var $val; var $left = NULL; var $right = NULL; function __construct($val){ $this->val = $val; } } function Mirror(&$root){ if($root==null){ return null; } $temp=$root->left; $root->left=$root->right; $root->right=$temp; Mirror($root->left); Mirror($root->right); } //構(gòu)造一個(gè)樹 $node5=new TreeNode(5); $node7=new TreeNode(7); $node9=new TreeNode(9); $node11=new TreeNode(11); $node6=new TreeNode(6); $node10=new TreeNode(10); $node8=new TreeNode(8); $node8->left=$node6; $node8->right=$node10; $node6->left=$node5; $node6->right=$node7; $node10->left=$node9; $node10->right=$node11; $tree=$node8; //鏡像這棵二叉樹 var_dump($tree); Mirror($tree); var_dump($tree); object(TreeNode)#7 (3) { ["val"]=> int(8) ["left"]=> object(TreeNode)#5 (3) { ["val"]=> int(6) ["left"]=> object(TreeNode)#1 (3) { ["val"]=> int(5) ["left"]=> NULL ["right"]=> NULL } ["right"]=> object(TreeNode)#2 (3) { ["val"]=> int(7) ["left"]=> NULL ["right"]=> NULL } } ["right"]=> object(TreeNode)#6 (3) { ["val"]=> int(10) ["left"]=> object(TreeNode)#3 (3) { ["val"]=> int(9) ["left"]=> NULL ["right"]=> NULL } ["right"]=> object(TreeNode)#4 (3) { ["val"]=> int(11) ["left"]=> NULL ["right"]=> NULL } } object(TreeNode)#7 (3) { ["val"]=> int(8) ["left"]=> object(TreeNode)#6 (3) { ["val"]=> int(10) ["left"]=> object(TreeNode)#4 (3) { ["val"]=> int(11) ["left"]=> NULL ["right"]=> NULL } ["right"]=> object(TreeNode)#3 (3) { ["val"]=> int(9) ["left"]=> NULL ["right"]=> NULL } } ["right"]=> object(TreeNode)#5 (3) { ["val"]=> int(6) ["left"]=> object(TreeNode)#2 (3) { ["val"]=> int(7) ["left"]=> NULL ["right"]=> NULL } ["right"]=> object(TreeNode)#1 (3) { ["val"]=> int(5) ["left"]=> NULL ["right"]=> NULL } } }
到此,關(guān)于“PHP怎么實(shí)現(xiàn)鏡像二叉樹”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。