Rumah pembangunan bahagian belakang tutorial php php如何实现镜像二叉树(代码)

php如何实现镜像二叉树(代码)

Sep 30, 2018 pm 02:12 PM
php

本篇文章给大家带来的内容是关于php如何实现镜像二叉树(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

操作给定的二叉树,将其变换为源二叉树的镜像。
二叉树的镜像定义:源二叉树

  2345截图20180930141207.png

镜像二叉树             

2345截图20180930141216.png思路:
1.左子树赋给temp
2.temp赋给右子树
3.右子树赋给左子树
4.递归

1

2

3

4

5

6

mirror(root)

    temp=root->left

    root->left=root->right

    root-right=temp

    mirror(root->left)

    mirror(root->right)

Salin selepas log masuk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

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);

}

//构造一个树

$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);

Salin selepas log masuk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

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

    }

  }

}

Salin selepas log masuk

Atas ialah kandungan terperinci php如何实现镜像二叉树(代码). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Tarikh dan Masa CakePHP

Konfigurasi Projek CakePHP Konfigurasi Projek CakePHP Sep 10, 2024 pm 05:25 PM

Konfigurasi Projek CakePHP

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Muat naik Fail CakePHP

Penghalaan CakePHP Penghalaan CakePHP Sep 10, 2024 pm 05:25 PM

Penghalaan CakePHP

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

Bincangkan CakePHP

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP

Panduan Ringkas CakePHP Panduan Ringkas CakePHP Sep 10, 2024 pm 05:27 PM

Panduan Ringkas CakePHP

See all articles